使用 LIMIT 更正 MySQL DELETE 语句的语法
尝试使用以下 DELETE 语句从 MySQL 表中删除一系列行时LIMIT 子句,如果语法不正确,您可能会遇到错误。此错误通常表示用于指定限制的语法存在问题。
提供的查询中的问题是您无法在 DELETE 语句的 LIMIT 子句中指定偏移量。在 DELETE 语句中使用 LIMIT 子句的语法是 LIMIT
要解决此问题,您需要重写查询以指定要删除的行。删除得更准确。一种方法是使用 IN 子句选择要删除的行的 ID,然后使用这些 ID 来筛选 DELETE 语句中的行。
以下是如何重写的示例您的查询:
<code class="sql">DELETE FROM `chat_messages` WHERE `id` IN ( SELECT `id` FROM ( SELECT `id` FROM `chat_messages` ORDER BY `timestamp` DESC LIMIT 20, 50 ) AS `x` )</code>
在此查询中,我们首先使用子查询来选择要删除的行的 ID。然后,我们使用主 DELETE 语句中的 IN 子句根据这些 ID 过滤行,从而删除所需范围的行。
需要注意的是,您可能需要进行调整基于表的特定结构和所需行为的查询。
以上是如何在 MySQL DELETE 语句中使用 LIMIT 删除一定范围的行?的详细内容。更多信息请关注PHP中文网其他相关文章!