Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/67.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 如何使用SQL查找重复字段?_Mysql_Sql - Fatal编程技术网

Mysql 如何使用SQL查找重复字段?

Mysql 如何使用SQL查找重复字段?,mysql,sql,Mysql,Sql,我有表personid,iin,name,done和表err_personid,iin,姓氏,name。如何在“iin”字段中找到重复值。如果存在,则复制到err_person表,并为这些行设置标志person.done=1 要在字段中查找重复值,请执行以下操作: SELECT iin FROM person GROUP BY iin HAVING COUNT(*) > 1 您可能希望嵌套此查询: SELECT * FROM person WHERE iin IN ( SELECT

我有表personid,iin,name,done和表err_personid,iin,姓氏,name。如何在“iin”字段中找到重复值。如果存在,则复制到err_person表,并为这些行设置标志person.done=1


要在字段中查找重复值,请执行以下操作:

SELECT iin
FROM person
GROUP BY iin
HAVING COUNT(*) > 1
您可能希望嵌套此查询:

SELECT * FROM person WHERE iin IN (
   SELECT iin
   FROM person
   GROUP BY iin
   HAVING COUNT(*) > 1)
因此,要将其插入err_person表,您可以执行类似操作,注意person表没有姓氏字段:


最后,必须运行一个单独的查询来更改done字段。这里嵌套查询的问题是,您正在更新一个试图查看的表,因此使用查看子查询的更新查询的简单操作将失败,因为两者都基于person表。在这里,临时表可能是更好的选择。

我不确定重复字段是什么意思。通常,人们对这些字段中的重复值感兴趣?请你澄清一下你的问题好吗?是的,我指的是“iin”字段中的重复值。我更正了问题。@JTAG。示例数据和期望的结果将非常有帮助。如何将数据复制到err_person表,然后设置person.done=1的标志。我想使用Mysql,而不使用服务器
INSERT INTO err_person (id, iin, name)
    SELECT id, iin, name FROM person WHERE iin IN (
        SELECT iin
        FROM person
        GROUP BY iin
        HAVING COUNT(*) > 1)