Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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/5/sql/71.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/2/ssis/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更新并在插入时返回重复行_Mysql_Sql - Fatal编程技术网

Mysql sql更新并在插入时返回重复行

Mysql sql更新并在插入时返回重复行,mysql,sql,Mysql,Sql,我有一张桌子: id, SourceA_id, SourceB_id, data 数据可能来自sourceA或sourceB ID。我需要确定是否已经存在来自其他源的相同数据,然后使用相应的编码源ID更新所有行。以下是一个例子: id, SourceA_id, SourceB_id, data 1, null, 55, apple 2, null, 55, banana 3, null, 77, orange 现在添加了新信息 SourceA_id, data 33, apple

我有一张桌子:

id, SourceA_id, SourceB_id, data
数据可能来自sourceA或sourceB ID。我需要确定是否已经存在来自其他源的相同数据,然后使用相应的编码源ID更新所有行。以下是一个例子:

 id, SourceA_id, SourceB_id, data
 1, null, 55, apple
 2, null, 55, banana
 3, null, 77, orange
现在添加了新信息

SourceA_id, data
33, apple
我现在想更新id为1的行,因为它与新数据匹配

id, SourceA_id, SourceB_id, data
1, 33, 55, apple
2, null, 55, banana
3, null, 77, orange
它还应更新与匹配行的SourceB_id匹配的所有行:

id, SourceA_id, SourceB_id, data
1, 33, 55, apple
2, 33, 55, banana
3, null, 77, orange
我不介意它是一个步骤还是两个步骤


我知道它应该使用
INSERT。。。在重复密钥更新时
和返回时

如何在中添加新信息?插入或更新?@maSTArHiAn我使用插入到。。。在重复密钥更新时查看此项@是的,但我认为这只适用于插入的行。但是,当存在重复项时,我还需要更新其他行。