用SQL查找重复项?

时间:2017-02-18 00:05:26

标签: mysql sql

我想知道我的数据库是否包含重复项。如果没有,我知道我的代码正在运行。

我的数据库如下所示:

----------------------------
| id | name | price | link  | 
|---------------------------|
| 202| test | 34.00 | googl |
| 203| halo | 22.00 | bing  |
| 204| hovo | 31.00 | link  |
| 205| test | 34.00 | googl |
-----------------------------

您可以看到名称,价格和链接的值相同,但ID不同。我想到了像名称,价格和链接这样的东西,并将其计算在内。像这样举例如:

SELECT email, 
COUNT(email) AS NumOccurrences
FROM users
GROUP BY email
HAVING ( COUNT(email) > 1 )

但我的问题是我如何按照表格中的3个属性进行分组。按名称,价格和链接?

3 个答案:

答案 0 :(得分:2)

您可以在GROUP BY子句中指定3列,例如:

SELECT name, price, link 
FROM users
GROUP BY name, price, link
HAVING COUNT(email) > 1;

答案 1 :(得分:2)

您可以一次按多个字段进行分组。

选择a,b,c,COUNT(d) 来自someTable GROUP BY a,b,c 有计数(d)> 1

希望这有帮助。

答案 2 :(得分:1)

按多列分组,并计算组大小:

SELECT name, price, link, Count(*) as cnt 
FROM table_name
GROUP BY name, price, link
where cnt>1