【发布时间】:2020-06-01 20:13:38
【问题描述】:
谁能帮我把这个 PHP/MySQLesque 伪代码变成一个有效的 MySQL 查询?表 A 和 B 具有相同的列/列顺序。
UPDATE B SET
B.col_1 = A.col_1 IF(A.col_1 != '' AND A.col_1 != 0 AND A.col_1 != NULL),
B.col_2 = A.col_2 IF(A.col_2 != '' AND A.col_2 != 0 AND A.col_2 != NULL),
…
B.col_n = A.col_n IF(A.col_n != '' AND A.col_n != 0 AND A.col_n != NULL)
WHERE A.$uniqueField = B.$uniqueField
n 列(email、firstName、lastName、phone 等)中的任何一个都可以是 $uniqueField(由 PHP 处理),所以我不能使用 insert-on-duplicate-key。
我发现了很多相反的例子(即复制行并跳过目标表中的空字段),包括通过 COALESCE 的有前途的方法,但我无法让它工作。
任何帮助将不胜感激...在此先感谢!
【问题讨论】:
-
@forpas 你是对的,这是我大约 8 小时前的问题的副本。尽管我试图解释我的问题,但该帖子已关闭……不幸的是,我的问题没有解决方案。所以我编辑了那个帖子 - 因为另一个不再接受答案 - 打开这个帖子,希望这次我能更好地解释我的问题......
标签: mysql sql join sql-update