MySQL - 检查列值的唯一性

时间:2014-06-07 13:27:26

标签: mysql

是否可以编写MySQL查询来检查列组合的“单一性”?

目前我一直在尝试在phpmyadmin中的列上创建唯一键并查看它是否失败,这是因为很多原因并不理想。

查询可以让我找到那些列中具有重复值的行,甚至可以计算导致组合不唯一的行数。知道有多少套不同的重复值也很好。

检查列b,c

的示例
a|b|c
-----
1|2|3
4|1|3
1|2|9

上面没有上面的行返回,即使b中的两个值相同而c中有两个值相同。


a|b|c
-----
1|2|3
4|5|6
7|2|3
7|5|6

将返回所有行,或者查询可以返回集2 | 3和5 | 6。

2 个答案:

答案 0 :(得分:6)

使用selectgroup by a,b,c的{​​{1}}查询会显示与其他行重复的行。要查看唯一行,您可以将having count(*) > 1子句更改为having

如果您想检查having count(*) = 1的哪些组合是唯一的,您可以

b,c

例如,要查找重复的select b,c from t1 group by b,c having count(*) = 1 组合,您可以执行以下操作:

a,b,c

答案 1 :(得分:0)

您最好像这样创建唯一的表,然后重命名为您希望:

CREATE TABLE table_unique AS 
(SELECT a,b,c FROM table GROUP BY a,b,c HAVING COUNT(*)=1);