首页 >数据库 >mysql教程 >如何在 MySQL 5.5.8 中删除最新 15 条之外的帖子?

如何在 MySQL 5.5.8 中删除最新 15 条之外的帖子?

Barbara Streisand
Barbara Streisand原创
2024-11-11 15:13:03583浏览

How to Delete Posts Outside the Latest 15 in MySQL 5.5.8?

mySQL 子查询限制:解决“此版本的 MySQL 不支持 'LIMIT & IN/ALL/ANY/SOME 子查询”错误

提供的查询试图删除不包含在最新 15 个条目中的帖子,但遇到错误“MySQL 尚不支持'LIMIT & IN/ALL/ANY/SOME 子查询。'" 这是由于 MySQL 版本 5.5.8 中的限制造成的。

建议的解决方案:

克服这个问题限制,采用以下修改后的查询:

DELETE 
FROM posts 
WHERE id not in (
      SELECT * FROM (
            SELECT id 
            FROM posts 
            ORDER BY timestamp desc limit 0, 15
      ) 
      as t);

此查询使用嵌套 SELECT 语句来创建子查询检索最新 15 个帖子的 ID。然后,主查询利用此子查询来识别并删除超出此范围的帖子。

说明:

在内部,修改后的查询遵循两步过程:

  1. 它创建一个临时表,由子查询别名“t”表示,其中包含最新 15 个帖子。
  2. 然后主查询使用这个临时表来过滤掉子查询中没有 ID 的帖子,从而实现所需的删除。

以上是如何在 MySQL 5.5.8 中删除最新 15 条之外的帖子?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn