2016-06-21 89 views
0

我嘗試在與其他值匹配時更新列中的特定值。當與其他值匹配時,MySql更新值

enter image description here

數據庫= wpddz_rg_lead_detail

我需要更新0(可以說〜5)中的值的列(field_number 21 =紅圈)如果存在與field_number 23值的匹配(藍色圈)。

爲field_number 23值(藍色圓圈)的值是一個變量,我可以在傳遞給查詢

UPDATE wpddz_rg_lead_detail SET VALUE = 100 WHERE field_number = 21 

做對,但我需要首先檢查是否從field_number我的變量== DE值23

有沒有人可以幫助我德查詢?

編輯&解決方案:

THX @Alex

UPDATE wpddz_rg_lead_detail AS a 
JOIN wpddz_rg_lead_detail AS b 
    ON a.lead_id = b.lead_id 
    AND a.form_id = b.form_id 
    AND b.field_number = 23 
    AND b.value = '0e71f6d7abc70b41704faf98302a1d689a4cd80a' 
SET a.value = a.value+100 
WHERE a.form_id=2 
AND a.field_number = 21 
+0

請向我們提供您已經試過什麼樣。但是如果我理解,你正在嘗試做類似的事情? 'Update table_name set value = 5 where field_number = 21'? – andre3wap

+0

請提供預期的輸出。你的問題是UNCLEAR! – sagi

回答

1
UPDATE t t1 
JOIN t t2 
ON t1.lead_id=t2.lead_id 
    AND t1.form_id = t2.form_id 
    AND t2.field_number = 23 
    AND t2.value IS NOT NULL # here you can set whatever condition for 23 field 
SET t1.`value`=5 
WHERE 
    t1.lead_id=4 
    AND t1.form_id=2 
    AND t1.field_number=21 
+0

有點調整需要,但這幫助我解決它,thx – Mark