mysql - 在 Duplicate Key 上仅更新 Null 或空值

标签 mysql merge duplicates

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

所以简而言之,On duplicate key .. wp_second values should be updated only if null or empty.

这是我到目前为止的查询

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,就是你想要的值

关于mysql - 在 Duplicate Key 上仅更新 Null 或空值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36668795/

相关文章:

Java生成不重复随机数

r - 重复值子集 >10

mysql - 如何处理此 SQL 查询

存在 ID 匹配的 PHP 更新数据

git - 如何让git在 merge 时忽略目录

git - 删除虚假的提交父指针

c# - 没有获取 MySQL 特定表的列

cron - 与 phpmyadmin 文件相比,mysqldump 文件导入速度较慢

javascript - 将两个功能合二为一

mysql - SQLSTATE[23000] : Integrity constraint violation: 1062 Duplicate entry '2' for key 'PRIMARY'