반응형
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 = '영희'
반응형
'SQL > MySQL' 카테고리의 다른 글
MySQL Count(1) Count(*) Count(컬럼) 차이 정리 (0) | 2021.05.11 |
---|---|
MySQL JSON 조회 및 데이터 꺼내오는 방법 (0) | 2021.04.29 |
MySQL 모든 테이블 이름 검색방법 (0) | 2021.04.12 |
MySQL 테이블 이름 변경방법 (0) | 2021.04.12 |
MySQL 인덱스 강제 지정 / 사용 권장 / 사용 금지 방법 정리 (0) | 2021.04.09 |
댓글