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 在重复键上,仅更新空值或空值_Mysql_Merge_Duplicates - Fatal编程技术网

Mysql 在重复键上,仅更新空值或空值

Mysql 在重复键上,仅更新空值或空值,mysql,merge,duplicates,Mysql,Merge,Duplicates,我有一个mysql查询来合并主键IMO上的两个表。该查询工作正常,但问题是,在重复键更新时,我只想更新第二个表中那些没有值的字段 简而言之,在重复键上。。wp_second值仅在null或空时更新 这是我到目前为止提出的问题 INSERT INTO wp_second (imo, GEARTYPE, vname, flag) SELECT imo_number, vessel_type, vessel_name, flag FROM wp_first ON DUPLICATE KEY UPDAT

我有一个mysql查询来合并主键IMO上的两个表。该查询工作正常,但问题是,在重复键更新时,我只想更新第二个表中那些没有值的字段

简而言之,在重复键上。。wp_second值仅在null或空时更新

这是我到目前为止提出的问题

INSERT INTO wp_second (imo, GEARTYPE, vname, flag) SELECT imo_number, vessel_type, vessel_name, flag FROM wp_first
ON DUPLICATE KEY UPDATE 
wp_second.GEARTYPE=wp_first.vessel_type,
wp_second.flag=wp_first.flag,
wp_second.vname=wp_first.vessel_name
用coalesce试试这个

   ON DUPLICATE KEY UPDATE 
   wp_second.GEARTYPE= COALESCE(wp_first.vessel_type, wp_second.GEARTYPE),
   wp_second.flag= COALESCE(wp_first.flag, wp_second.flag),
   wp_second.vname= COALESCE(wp_first.vessel_name, wp_second.vname)

??如果为null,则为所需的值。

如果为null,则我要使用wp_第一个值更新字段。。如果不为Null或空,则忽略。。您能提供帮助吗?yes COALESCE()从其参数返回第一个非null值。顺便说一句,我的最终查询在重复密钥更新wp_second.GEARTYPE=IFNULL(NULLIF(wp_first.vesser_type.)、wp_second.GEARTYPE上看起来是这样的