MySql,如何选择不重复的行

时间:2017-01-05 14:41:25

标签: mysql

我有一张100 000记录的表,我想只选择无重复记录。

换句话说,如果行重复,则根本不显示

ID     Name    Reslut
1      Adam    10
2      Mark    10
3      Mark    10

结果

ID     Name    Reslut
1      Adam    10

任何想法?

2 个答案:

答案 0 :(得分:0)

您可以在表上加入查询,查询按名称分组只返回唯一名称:

SELECT *
FROM   mytable t
JOIN   (SELECT   name
        FROM     mytable
        GROUP BY name
        HAVING   COUNT(*) = 1) s ON t.name = s.name

答案 1 :(得分:0)

使用相同的集合:

ID     Name    Result
1      Adam    10
2      Mark    10
3      Mark    10
4      Mark    20

我猜测最终的解决方案是:

ID     Name    Result
1      Adam    10
4      Mark    20

使用之前建议的上述查询我对其进行了修改以考虑结果:

SELECT t1.* 
FROM myTable t1
JOIN 
   (
      SELECT name, result 
      FROM myTable  
      GROUP BY name, result 
      HAVING COUNT(*) = 1
    ) t2
WHERE 
    t1.name=t2.name and 
    t1.result = t2.result;