如何检查3个字段在MySQL中是否唯一?

时间:2019-01-29 08:14:24

标签: mysql sql

我有一个没有定义主键的表。 我怀疑将3个字段组合在一起是此表的实际键。 为了测试此假设,我首先需要检查这3个字段作为元组是唯一的。

我想做类似的事情:

SELECT CONCAT(field_A, field_B, field_C) as pk
FROM My_table;

现在,我想搜索是否重复此新字段。 我知道我需要以某种方式进行分组并使用count(*)> 1,但是我无法获得正确的语法。

SELECT *
FROM My_table
GROUP BY CONCAT(field_A, field_B, field_C)
HAVING ? > 1

感觉好像快要完成了,但是我找不到合适的语法使其真正起作用。

1 个答案:

答案 0 :(得分:2)

SELECT count(*) cnt, field_A, field_B, field_C
FROM my_table
GROUP BY field_A, field_B, field_C
HAVING cnt > 1