2017-07-26 57 views
-1

以下Oracle SQL是我怎樣才能改變此Oracle SQL到MySQL

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

INSERT INTO table1的RS SELECT ch.column FROM表2 CH INNER JOIN表1 rs ON rs.id = ch.id其中rs.column不爲null ON DUPLICATE KEY UPDATE rs.column = ch.column ...或與其非常接近的東西 – valicu2000

+0

您是否嘗試瞭解上述查詢的作用並嘗試將其轉換? –

+1

Google mysql合併。 –

回答

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個查詢)

2

即合併只是做一個更新,而不是插入。

所以,你可以使用update語句爲它

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