어장 Develop/어장 DBMS
[MySQL] update 서브쿼리
김생선
2019. 1. 28. 17:19
반응형
DB 또는 시스템 작업을 하다보면 여러건에 대해 한번에 업데이트를 하는 경우가 많다. 뭐 그렇다치고 이번에는 MySQL 에서 서브쿼리를 이용하는 방법을 알아보자.
이번에 할 작업은 A_Table의 a_column의 데이터와 문자열을 합친 후, A_Table의 b_column에 업데이트를 해줄 일이 생겼다. 오라클과 다르게 한차례 더 가공을 해야 해서 손이 가는 편이지만 크게 어렵지는 않았다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | UPDATE 'A_Table' AS AliasA SET AliasA.b_column = ( SELECT AliasC.a_column_text FROM ( SELECT AliasB.a_column , CONCAT('TEST_' , AliasB.a_column ) AS a_column_text //MySQL에서 문자열 합치기는 concat을 이용함 FROM 'A_Table' AS AliasB ) AS AliasC WHERE AliasC.a_column = AliasA.a_column ) WHERE AliasA.b_column IS NULL; | cs |
오라클 같은 경우에는 SET 구문에서 서브쿼리를 바로 날리면 되지만, MySQL의 경우에는 SELECT 구문에 서브쿼리를 한 번 더 감싸줘야 한다.
이로써 A_Table의 b_column에 'TEST_'문자열이 합쳐진 a_column값이 update 되게 된다.
반응형