目标是将表1链接到表2,并在表1不是默认值时填充表1。
示例:
UPDATE table1 aa, table2 bb
SET aa.column2=IF(aa.column2=0,bb.column2,aa.column2) and aa.column3=IF(aa.column3=0,bb.column3,aa.column3)... Total of 5 columns being updated
WHERE aa.column1=bb.column1;
当我跑步时,我的人口很少。但是,如果我从SET行删除除一个IF语句之外的所有语句,则一切都按预期工作。
我对MySQL很新,所以任何人都能提供的任何帮助都会非常感激。
答案 0 :(得分:0)
最好使用显式join
语法。但是,更重要的是,您不使用and
来连接set
语句。您可以使用and
为,
语句连接布尔值和set
。这对查询的解释方式有很大影响。
试试这个:
UPDATE table1 aa JOIN
table2 bb
ON aa.column1=bb.column1
SET aa.column2=IF(aa.column2=0,bb.column2,aa.column2),
aa.column3=IF(aa.column3=0,bb.column3,aa.column3),
... Total of 5 columns being updated;
答案 1 :(得分:0)
使用逗号代替and
。
逗号是分隔符,and
只是运算符。