具有 LIMIT 限制的 mySQL 子查询
在 MySQL 中,尝试在使用 IN 运算符的子查询中使用 LIMIT 子句可能会触发错误消息指出 MySQL 不支持此功能。本文提供了解决此问题的方法,允许您根据与表中最新 15 条记录相关的特定条件从表中删除行。
要获得所需的结果,您可以使用以下查询结构:
DELETE FROM posts WHERE id not in ( SELECT * FROM ( SELECT id FROM posts ORDER BY timestamp desc limit 0, 15 ) as t);
外部 DELETE 语句针对 posts 表进行行删除。 IN 运算符用于标识应保留的行,这些行是在子查询结果中找到的行。
子查询从 posts 表中选择 id 字段,按时间戳对结果进行降序排序,然后应用 LIMIT 子句来检索前 15 条记录。通过使用别名 t,子查询创建一个临时表以进行高效处理。
这种解决方法有效地消除了 MySQL 的限制,并允许您执行删除所有不属于最近 15 个帖子的预期操作记录。
以上是如何在子查询中使用 LIMIT 根据最新 15 条记录删除 MySQL 中的行?的详细内容。更多信息请关注PHP中文网其他相关文章!