在 MySQL 中使用 LIMIT 更新多行
您正在尝试在 MySQL 查询中使用 LIMIT 子句更新特定数量的行,但遇到错误。让我们了解为什么您的初始查询可能失败以及如何修复它。
UPDATE messages set test_read =1 WHERE userid='xyz' ORDER BY date_added DESC LIMIT 5, 5 ;
上面的查询无效,因为 LIMIT 期望一个正整数表示与结果集开头的偏移量,然后要更新的行数。在查询中,您同时指定了偏移量 (5) 和限制 (5),这是不正确的。
要更新从偏移量开始的特定行数,可以使用子查询来选择要更新的行,然后更新它们。下面是修改后的查询:
UPDATE messages SET test_read=1 WHERE id IN ( SELECT id FROM ( SELECT id FROM messages ORDER BY date_added DESC LIMIT 5 ) tmp );
在此查询中,子查询用于选择要更新的行的 ID,从第 5 行开始按 date_added 列的降序排列。然后,主查询使用 IN 子句仅更新这些特定行。
以上是如何使用 LIMIT 更新 MySQL 中的特定行数?的详细内容。更多信息请关注PHP中文网其他相关文章!