在mysql表列中选择非重复记录

gjmwrych  于 2021-06-17  发布在  Mysql
关注(0)|答案(1)|浏览(302)

我有一张只有两列的大table。一个是主id列,另一个是数据列。
我只需要选择表中不重复的记录。我尝试了下面的查询,但它需要很多时间,不确定它是否真的工作。

  1. select * from (select column_name
  2. from table_name
  3. group by column_name
  4. having count(*) = 1) x;

你怎么认为?
如果它能更快地完成任务,我也愿意尝试其他方法。

nc1teljy

nc1teljy1#

您可以左键联接同一个表或使用子查询检查重复项。这对于sql server应该更容易,因为它不会计算所有重复项。像这样:

  1. SELECT
  2. t1.column_name
  3. FROM
  4. table_name AS t1
  5. WHERE
  6. NOT EXISTS (
  7. SELECT
  8. *
  9. FROM
  10. table_name AS t2
  11. WHERE
  12. t2.column_name = t1.column_name
  13. AND t2.id != t1.id
  14. )

  1. SELECT
  2. t1.column_name
  3. FROM
  4. table_name AS t1
  5. LEFT JOIN table_name t2 ON (
  6. t2.column_name = t1.column_name
  7. t2.id != t1.id
  8. )
  9. WHERE
  10. t2.column.name IS NULL
展开查看全部

相关问题