2016-04-16 46 views
1

我有一個mysql查詢合併主鍵IMO上的兩個表。查詢工作正常,但是我遇到的問題是在重複密鑰更新時,我只想更新wp_second表中那些沒有值的字段。重複鍵只更新空值或空值

所以簡而言之,重複鍵.. wp_second值應該只更新如果爲空或空。

這裏查詢我到目前爲止

INSERT INTO wp_second (imo, GEARTYPE, vname, flag) SELECT imo_number, vessel_type, vessel_name, flag FROM wp_first 
ON DUPLICATE KEY UPDATE 
wp_second.GEARTYPE=wp_first.vessel_type, 
wp_second.flag=wp_first.flag, 
wp_second.vname=wp_first.vessel_name 

回答

2

與聚結

ON DUPLICATE KEY UPDATE 
    wp_second.GEARTYPE= COALESCE(wp_first.vessel_type, wp_second.GEARTYPE), 
    wp_second.flag= COALESCE(wp_first.flag, wp_second.flag), 
    wp_second.vname= COALESCE(wp_first.vessel_name, wp_second.vname) 

試試這個?是你想要的值如果爲空

+0

如果爲空我想用wp_first值更新字段..如果不是空或空然後忽略..你能幫忙嗎? –

+0

yes COALESCE()從其參數中返回第一個非空值。 –

+0

看看我編輯的答案 –