问题:
如何从 MySQL 表中删除基于select 语句的结果?
代码 (MySQL 5.0):
DELETE FROM posts where>
问题:
上面的代码在 MySQL 5.0 中不起作用,您想要找到一个可行的解决方案。您的目标是删除没有唯一 ID 的行。
答案:
使用 IN:
在 MySQL 中,子查询返回结果集。要在 DELETE 语句中使用子查询的结果,您应该在 WHERE 子句中使用 IN 运算符而不是等号 (=)。
修改的代码:
DELETE FROM posts WHERE id IN ( SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 ) )
额外注意事项:
DELETE FROM posts p1 WHERE p1.id = ( SELECT p2.id FROM posts p2 WHERE p2.id = p1.id GROUP BY p2.id HAVING COUNT(p2.id) > 1 )
以上是如何根据 Select 语句的结果从 MySQL 表中删除行?的详细内容。更多信息请关注PHP中文网其他相关文章!