如何将此Oracle SQL更改为MySQL

时间:2017-07-26 07:29:08

标签: mysql sql oracle

以下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。我怎么能这样做?

2 个答案:

答案 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个查询)