gpt4 book ai didi

MySQL 在子查询中选择不同的存在

转载 作者:行者123 更新时间:2023-11-30 00:42:43 26 4
gpt4 key购买 nike

我有一个大约有 500k 行的表,我想删除重复项。首先,我运行 select unique 来查看唯一行的数量:

select distinct f1, f2, f3, f4 from my_table;

它返回了大约 300k 行。

我想将唯一的行插入到另一个表中,因此我运行下一个查询:

insert into table_unique 
(select * from table where exists
(select distinct f1, f2, f3, f4 from my_table)
)

但是这个查询会插入所有行,而不仅仅是唯一的行。看起来 select unique 在子查询中工作有点奇怪。

谁能给我解释一下这种行为吗?

非常感谢。

最佳答案

您的Select unique查询确实返回每行的一个副本。

但是,您的 select * from table where isn't 返回与这些不同行匹配的所有记录,从而也返回所有副本。

关于MySQL 在子查询中选择不同的存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21640138/

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