首页 > 数据库 > mysql教程 > MySQL 5.0中如何高效删除非唯一行?

MySQL 5.0中如何高效删除非唯一行?

Mary-Kate Olsen
发布: 2024-12-27 11:01:08
原创
605 人浏览过

How to Efficiently Delete Non-Unique Rows in MySQL 5.0?

使用 Select 语句删除 MySQL 中的非唯一行

提供的查询语法

DELETE FROM posts where> 尝试从 posts 表中删除没有唯一 ID 的行。但是,此语法与 MySQL 5.0 不兼容。<p><strong>重写查询</strong></p><p>要使查询与 MySQL 5.0 兼容,应重写如下:</p> <p>`</p><pre class="brush:php;toolbar:false">从 id 所在的帖子中删除(<pre class="brush:php;toolbar:false">SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
登录后复制

)
`

理解修改后的查询

修改后的查询使用 IN 运算符将 posts 表的 id 列与子查询的结果集进行比较。该子查询检索在 posts 表中出现多次的行的 ID,表明 ID 不唯一。通过使用 IN 运算符,查询仅选择具有非唯一 ID 的行进行删除。

其他注意事项

正如答案参考中提到的,这是必不可少的需要注意的是,MySQL 不允许从同一查询中的子查询修改同一表。为了规避此限制,可以将查询分为两个单独的查询:一个用于标识要删除的行的 SELECT 查询,然后是一个用于执行删除的 DELETE 查询。或者,可以使用带有别名的嵌套子查询来允许在单个查询中进行删除。

以上是MySQL 5.0中如何高效删除非唯一行?的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板