Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查MySQL中的3个字段是否唯一?_Mysql_Sql - Fatal编程技术网

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

如何检查MySQL中的3个字段是否唯一?,mysql,sql,Mysql,Sql,我有一个没有定义主键的表。 我怀疑这3个字段组合在一起就是这个表的实际键。 为了首先测试这个假设,我需要检查这3个字段作为元组是唯一的 我想做一些事情,比如: SELECT CONCAT(field_A, field_B, field_C) as pk FROM My_table; 现在我想搜索这个新字段是否重复。 我知道我需要以某种方式分组并使用having count(*)>1,但我无法获得正确的语法 SELECT * FROM My_table GROUP BY CONCAT(field

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

我想做一些事情,比如:

SELECT CONCAT(field_A, field_B, field_C) as pk
FROM My_table;
现在我想搜索这个新字段是否重复。 我知道我需要以某种方式分组并使用having count(*)>1,但我无法获得正确的语法

SELECT *
FROM My_table
GROUP BY CONCAT(field_A, field_B, field_C)
HAVING ? > 1
感觉它几乎完成了,但我找不到正确的语法使它实际工作

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