以下Oracle SQL
merge into table1 rs
using table2 ch
on (rs.id = ch.id)
when matched then
update set rs.column = ch.column
where rs.column is not null
我想将此SQL更改为MySQL。我怎么能这样做?
答案 0 :(得分:2)
该合并仅进行更新,而不是插入。
因此您可以使用更新语句
update table1 rs
inner join table2 ch on rs.id = ch.id
set rs.column = ch.column
where rs.column is not null
如果你需要一个upsert,MySql有一个insert on duplicate key update syntax
答案 1 :(得分:0)
mySQL没有“MERGE”语句。
但是,有3种方法可以实现这一点:
1.使用@ valicu2000的解决方案
2.使用REPLACE语法
REPLACE into table1 rs(`column`) values(select column from table2 ch) where table1.id=table2.id and table2.column is not null
3。尝试事务更新并插入(但是,那将是2个查询)