我真的已经搜索了这个问题,并没有发现这个问题。
非常简单的查询:
/*get rid of 125 rows starting at 100*/
delete from my_table WHERE category=5 order by editdate DESC LIMIT 100, 125;
这是返回的内容:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ' 125' at line 1
我有一段时间没有使用过LIMIT,但与此同时我没有遇到任何问题。错误是非常神秘的,任何想法?
我的mysql版本是5.x
答案 0 :(得分:1)
这是因为DELETE的MySQL语法不允许LIMIT的第二个参数,就像在SELECT情况下一样。请查看manual。
答案 1 :(得分:0)
您不能在DELETE命令上使用LIMIT偏移量。这是一种方法:
delete from my_table WHERE ID IN (SELECT ID from my_table WHERE category=5 order by editdate DESC LIMIT 100, 150);
其中ID是my_table的主要ID。
答案 2 :(得分:0)
delete from my_table WHERE category=5 order by editdate DESC LIMIT 125;
这会有效,但你不能使用像100,125这样的限制。因为它显示了行之间的选择。