使用mysql中的限制更新多行?

发布于 2024-08-06 18:32:59 字数 367 浏览 1 评论 0原文

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

我正在尝试使用此查询来使用限制更新一组 5 行,但 mysql 显示错误。下面的查询正在工作,

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

为什么第一个行不工作?

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

I am trying to use this query to update a set of 5 rows using limit but mysql is showing an error..The one below is working

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

why is the first one not working?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

恋竹姑娘 2024-08-13 18:32:59

如果你真的必须这样做,你可以使用这样的东西:

 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
 );

If you really must do it this way, you can use something like this:

 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
 );
滥情空心 2024-08-13 18:32:59

http://bugs.mysql.com/bug.php?id=42415

文档指出任何带有 LIMIT 子句的 UPDATE 语句
被认为是不安全的,因为受影响的行的顺序不是
定义:
http://dev.mysql.com/doc/refman /5.1/en/replication-features-limit.html

但是,如果使用“ORDER BY PK”,则定义行的顺序,并且
这样的语句可以以语句格式记录,无需任何
警告。

http://bugs.mysql.com/bug.php?id=42415

The documentation states that any UPDATE statement with LIMIT clause
is considered unsafe since the order of the rows affected is not
defined:
http://dev.mysql.com/doc/refman/5.1/en/replication-features-limit.html

However, if "ORDER BY PK" is used, the order of rows is defined and
such a statement could be logged in statement format without any
warning.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文