gpt4 book ai didi

sql - 如何从 MySQL 中的选择中删除?

转载 作者:IT老高 更新时间:2023-10-28 12:52:53 26 4
gpt4 key购买 nike

此代码不适用于 MySQL 5.0,如何重写以使其工作

DELETE FROM posts where id=(SELECT id FROM posts GROUP BY id  HAVING ( COUNT(id) > 1 ))

我想删除没有唯一 ID 的列。我会补充一点,大多数时候它只有一个 id(我尝试了 in 语法,但它也不起作用)。

最佳答案

SELECT(子)查询返回结果sets。所以你需要在 WHERE 子句中使用 IN,而不是 =

此外,如 this answer 中所示,您不能从同一查询中的子查询修改同一表。但是,您可以在单独的查询中 SELECT 然后 DELETE ,或者嵌套另一个子查询并为内部子查询结果设置别名(虽然看起来很hacky):

DELETE FROM posts WHERE id IN (
SELECT * FROM (
SELECT id FROM posts GROUP BY id HAVING ( COUNT(id) > 1 )
) AS p
)

或者使用连接 as suggested by Mchl

关于sql - 如何从 MySQL 中的选择中删除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4562787/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com