以下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。我怎樣才能做到這一點?
以下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。我怎樣才能做到這一點?
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個查詢)
即合併只是做一個更新,而不是插入。
所以,你可以使用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
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
您是否嘗試瞭解上述查詢的作用並嘗試將其轉換? –
Google mysql合併。 –