【问题标题】:MySQL limit clause not accepting 2 arguments [duplicate]MySQL限制子句不接受2个参数[重复]
【发布时间】:2014-09-09 12:48:39
【问题描述】:

我真的搜索了这个,没有找到关于这个问题的任何东西。

非常简单的查询:

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

【问题讨论】:

标签: mysql


【解决方案1】:

这是因为 MySQL 的 DELETE 语法不允许 LIMIT 的第二个参数,就像 SELECT 的情况一样。请查看manual

【讨论】:

    【解决方案2】:

    您不能在 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。

    【讨论】:

      【解决方案3】:
      delete from my_table WHERE category=5 order by editdate DESC LIMIT 125;
      

      这会起作用,但你不能使用像 100,125 这样的限制。因为它显示了行之间的选择。

      【讨论】:

        猜你喜欢
        • 2023-03-16
        • 2019-07-11
        • 2017-03-27
        • 1970-01-01
        • 1970-01-01
        • 2018-11-29
        • 1970-01-01
        • 1970-01-01
        • 2013-11-18
        相关资源
        最近更新 更多