代码之家  ›  专栏  ›  技术社区  ›  halocursed

在mysql中使用limit更新多行?

  •  28
  • halocursed  · 技术社区  · 16 年前
        UPDATE messages set test_read =1 
            WHERE userid='xyz' 
            ORDER BY date_added DESC  
            LIMIT 5, 5 ;
    

    我试图使用此查询使用limit更新一组5行,但mysql显示错误。下面的一行正在运行

        UPDATE messages set test_read =1 
            WHERE userid='xyz' 
            ORDER BY date_added DESC  
            LIMIT 5 ;
    

    为什么第一个不起作用?

    2 回复  |  直到 14 年前
        1
  •  53
  •   LukáÅ¡ Lalinský    16 年前

    如果您真的必须这样做,您可以使用以下内容:

     UPDATE messages SET test_read=1
     WHERE id IN (
         SELECT id FROM (
             SELECT id FROM messages 
             ORDER BY date_added DESC  
             LIMIT 5, 5
         ) tmp
     );
    
        2
  •  5
  •   Svetoslav Genov    14 年前