MySQL限制子句不接受2个参数

时间:2014-09-09 12:48:40

标签: mysql

我真的已经搜索了这个问题,并没有发现这个问题。

非常简单的查询:

/*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

3 个答案:

答案 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这样的限制。因为它显示了行之间的选择。