Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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获取重复(唯一)行_Mysql_Sql - Fatal编程技术网

MySQL获取重复(唯一)行

MySQL获取重复(唯一)行,mysql,sql,Mysql,Sql,我有一个表人物(id、电子邮件、电话、名字),其中电子邮件和电话应该是唯一的。如果我有例如(1)test@mail.com,null,“test”),我尝试添加具有相同数据的新行,这将导致问题,因为电子邮件列是唯一的。是否可以理解哪一列导致重复问题电子邮件或电话(在这种情况下,查询应返回电子邮件列)。从另一个表插入数据时,可以先连接两个表,以查找违反唯一约束的所有行 Select A.* FROM Data_That_Could_Violate_Your_Constraint A INNER

我有一个表人物(id、电子邮件、电话、名字),其中电子邮件和电话应该是唯一的。如果我有例如(1)test@mail.com,null,“test”),我尝试添加具有相同数据的新行,这将导致问题,因为电子邮件列是唯一的。是否可以理解哪一列导致重复问题电子邮件或电话(在这种情况下,查询应返回电子邮件列)。

从另一个表插入数据时,可以先连接两个表,以查找违反唯一约束的所有行

Select A.* 
FROM Data_That_Could_Violate_Your_Constraint A
INNER JOIN Person B
ON(A.phone=B.phone or A.firstName = B.firstName)

这将返回所有违反插入约束的记录,因为它们在
phone
firstName
或两者中共享相同的值。

异常消息告诉您哪列违反了唯一约束我认为如果您使用唯一约束并命名约束,然后MySQL将返回违反约束的名称。它在异常中返回,但是否可以作为查询的返回值返回?您可以先进行选择,查看电子邮件/电话是否已经存在。错误处理不应该是控制流的一种形式。@user5783530。查询返回一个错误/异常。你需要处理这个问题。