2016-06-21 2 views
0

다른 값과 일치하는 항목이 있으면 열의 특정 값을 업데이트하려고합니다.다른 값과 일치하는 항목이있는 경우 MySql은 값을 업데이트합니다.

enter image description here

데이터베이스 = wpddz_rg_lead_detail

I는 0 (5 말할 수) field_number (23) 값과 일치하는 경우는 값 열에 (= 빨간색 원 21 field_number) (파란색 업데이트해야

원).

field_number (23) 값 (파란색 원)의 값

내가 쿼리

UPDATE wpddz_rg_lead_detail SET VALUE = 100 WHERE field_number = 21 

바로 그것을 수행에 전달할 수있는 변수이지만, 내가 먼저 확인해야하는 경우 field_number에서 내 변수 == 드 값 23

누군가가 어떻게 쿼리를 도와 줄 수 있습니까?

편집 & 솔루션 :

들으 @ 알렉스

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

예상되는 출력을 제공하십시오. 당신은 질문이 명확하지 않습니다! – 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

조금 조정할 필요가 있었지만,이 덕분에 문제를 해결할 수있었습니다. – Mark

관련 문제