我有一个只有 2 列的大表。一个是主 id 列,另一个是数据列。
我只需要选择表中不重复的记录。我尝试了下面的查询,但需要很长时间并且不确定它是否真的有效。
select * from (select column_name
from table_name
group by column_name
having count(*) = 1) x;
你觉得怎么样?
如果它能更快地完成工作,我也愿意尝试其他尝试。
最佳答案
您可以左连接同一个表或使用子查询来检查重复项。 这对于 SQL Server 来说应该更容易,因为它不会计算所有重复项。 像这样的事情:
SELECT
t1.column_name
FROM
table_name AS t1
WHERE
NOT EXISTS (
SELECT
*
FROM
table_name AS t2
WHERE
t2.column_name = t1.column_name
AND t2.id != t1.id
)
或者
SELECT
t1.column_name
FROM
table_name AS t1
LEFT JOIN table_name t2 ON (
t2.column_name = t1.column_name
t2.id != t1.id
)
WHERE
t2.column.name IS NULL
关于mysql - 选择 MySQL 表列中的非重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53435093/