mysql的删除与极限声明mysql的删除与极限声明(Mysql delete statement

2019-05-12 03:56发布

我试图从表中删除行,但我得到一个错误。

DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;

我在50得到这个错误:

您的SQL语法错误; 检查对应于你的MySQL服务器版本使用附近的“50”在1号线正确的语法手册

不知道什么是错的。

Answer 1:

你不能在指定偏移DELETELIMIT子句。

所以,要做到这一点的唯一方法是查询重写是这样的:

DELETE FROM `chat_messages` WHERE id IN (select id from (select id
                                           FROM `chat_messages`
                                       ORDER BY `timestamp` DESC
                                          LIMIT 20, 50) x)

假设你有主键id

UPD:您需要实现双重嵌套愚弄的MySQL,因为它不允许从目前修改表中选择(感谢马丁·史密斯)



文章来源: Mysql delete statement with limit