본문 바로가기
SQL/MySQL

MySQL SELECT UPDATE 동시에 하는 방법 정리

by wakestand 2021. 4. 15.
반응형

MySQL에서 SELECT UPDATE 동시에 하는 방법은

UPDATE 시 SET에 서브쿼리를 사용해주면 되는데

 

위 예제를 보면 AGE = 부분에서

서브쿼리를 사용해서 값을 끌어온 것이 보이는데

 

서브쿼리를 굳이 두번이나 사용한 이유는

오라클은 서브쿼리 한번만 사용해도

SELECT UPDATE 동시에 사용이 가능하지만

 

MySQL에서는 에러가 나기 때문에

위와 같은 방법을 사용해줘야 한다

 

다음은 SELECT UPDATE 여러개를 변경하는 예제인데

 

MySQL은 오라클처럼 여러 컬럼을 묶어놓은 뒤

서브쿼리로 여러 컬럼을 조회해서 넣어줄 수 없기 때문에

위와 같이 컬럼 하나마다

서브쿼리를 작성해서 변경해줘야 한다

 

마지막으로 예제에 사용한 쿼리는 다음과 같다

 

-- SELECT UPDATE (컬럼 하나 변경 시)
UPDATE TB1
   SET AGE = (SELECT A.AGE 
                FROM (
                      SELECT AGE 
                        FROM TB1 
                       WHERE NAME = '철수'
                     ) A
             ) 
 WHERE NAME = '수철'

-- SELECT UPDATE (컬럼 여러개 변경 시)
UPDATE TB1
   SET AGE = (SELECT A.AGE 
                FROM (
                      SELECT AGE 
                        FROM TB1 
                       WHERE NAME = '철수'
                     ) A
             )
      ,NAME = (SELECT B.NAME 
                FROM (
                      SELECT NAME 
                        FROM TB1 
                       WHERE NAME = '철수'
                     ) B
              )
 WHERE NAME = '영희' 
반응형

댓글