본문 바로가기

MySQL

[MYSQL] UPDATE SELECT 같은 TABLE의 수정

SELECT *

FROM TABLE1 t1

WHERE 1=1

[ TABLE1 ]

seq name value etc
1 num1 1 null
2 num2 2 null

TABLE1 의

name 값이 num1일때 → value 값을 "11"로

name 값이 num2일때→ value 값을 "22"로 변경시


UPDATE TABLE1 t1,
 (SELECT seq, (CASE  WHEN name = 'num1' THEN 11 WHEN name = 'num2' THEN 22 ELSE 0 END) AS new_value
  FROM TABLE1 ) t2
set t1.value = t2.new_value
where t1.seqid = t2.seqid