MYSQL查询忽略每个重复

时间:2017-11-29 08:46:41

标签: php mysql

我有一个有重复行的表。我想做一个将删除所有重复行的选择。

我知道我可以做一个GROUP BY,但仍会显示一行副本。我想要的是所有重复都应该被忽略。

E.g

我有一个名为"用户"其中有一列名为"用户名"具有以下值:

  1. 约翰
  2. 萨姆
  3. Reyaan
  4. Reyaan
  5. 萨姆。
  6. 因此,当select查询完成时,它应该只显示" John"并且忽略了其他一切,因为Sam和Reyaan是重复的。

    感谢。

2 个答案:

答案 0 :(得分:2)

您可以使用HAVING子句确保每个组只返回一行。这样,您就可以确保只返回具有1个实例(非零,不超过1)的名称。

示例:

SELECT 
    name
FROM
    people
GROUP BY name
HAVING COUNT(name) = 1;

答案 1 :(得分:1)

您可以使用NOT IN功能

SELECT username FROM users WHERE username not in (select username from users group by username having count(username)>1)