반응형
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 되게 된다.
반응형
'어장 Develop > 어장 DBMS' 카테고리의 다른 글
[MariaDB] 권한 및 root 패스워드 변경 (0) | 2020.08.20 |
---|---|
[MySQL] 전체 테이블에서 특정 컬럼 조회 (0) | 2019.03.25 |
[Oracle 11g] update replace query (0) | 2018.06.22 |
[Oracle 11g] CLOB 쿼리 SELECT 방법 (0) | 2018.06.07 |
[Oracle 11g] 테이블 생성시간 확인 쿼리 (0) | 2018.05.30 |