Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/68.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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搜索重复项并验证2个表(相同结构)中的其余数据_Mysql_Search_Duplicates - Fatal编程技术网

Mysql sql搜索重复项并验证2个表(相同结构)中的其余数据

Mysql sql搜索重复项并验证2个表(相同结构)中的其余数据,mysql,search,duplicates,Mysql,Search,Duplicates,我刚刚向一个数据库添加了一些数据,8个人同时编写了这个数据库 这给我留下了8张结构相同的表格: id; mobile-phone; address; register-number; bla bla bla 我想搜索这8个人的副本,我想最好搜索手机 对于每一个重复的手机,如果能验证行的其余部分是否完全重复,那就太好了。如果我发现相同的地址,我希望该字段在8个表中除一个以外的所有表中归零。如果一行中的所有字段均为零,则可以将其删除 我以前用过这个搜索,但它不是很好: SELECT * FROM

我刚刚向一个数据库添加了一些数据,8个人同时编写了这个数据库

这给我留下了8张结构相同的表格:

id; mobile-phone; address; register-number; bla bla bla
我想搜索这8个人的副本,我想最好搜索
手机

对于每一个重复的
手机
,如果能验证行的其余部分是否完全重复,那就太好了。如果我发现相同的
地址
,我希望该字段在8个表中除一个以外的所有表中归零。如果一行中的所有字段均为零,则可以将其删除

我以前用过这个搜索,但它不是很好:

SELECT * FROM
(
  SELECT `mobile-phone`
  FROM `t1`
  UNION ALL
  SELECT `mobile-phone`
  FROM `t2`
) `tx`
GROUP BY `mobile-phone`
HAVING COUNT(*)>1
所以这是一个梦想成真,但任何接近这一点的东西都会帮助我。 谢谢

编辑1

我有一个想法,但我不确定什么不起作用:

UPDATE `t2` set `address`=0 WHERE `t1`.`address`=`t2`.`address` AND `t1`.`mobile-phone`=`t2`.`mobile-phone`
我在where子句中得到了
#1054-未知列't1.address'

编辑2

找到一些东西并尝试适应:

declare x INTEGER;
SET x = 1;
WHILE x <= 200 DO
  UPDATE `t2` set `address`=0 WHERE `address`=
    (select `address` from `t1` where mobile-phone`=
      (select `mobile-phone` from `t2` where `id`=x))
  SET x = x + 1;
END WHILE;
声明x整数;
设置x=1;
而x