我试图从表中删除行,但出现错误。
DELETE FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50;
我在 50 时收到此错误:
您的 SQL 语法有错误;检查与您的 MySQL 服务器版本相对应的手册,了解在第 1 行“50”附近使用的正确语法
不知道出了什么问题。
您不能指定偏移量DELETE
's LIMIT
clause.
因此,唯一的方法是将您的查询重写为:
DELETE FROM `chat_messages`
WHERE `id` IN (
SELECT `id` FROM (
SELECT `id` FROM `chat_messages`
ORDER BY `timestamp` DESC
LIMIT 20, 50
) AS `x`
)
假设你有主键id
column
UPD:你需要实现双重嵌套来欺骗mysql,因为它不允许从当前修改的表中进行选择(感谢Martin Smith)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)