[MySQL] UPDATE 쿼리 WHERE에 SELECT 결과 사용

UPDATE 쿼리 WHERE에 SELECT 결과 사용

  • 만약 같은 UPDATE하려는 테이블과 SELECT하는 테이블이 같다면 아래와 같이 한 번 더 감싸준다.
UPDATE tree
SET seq = 1
WHERE id IN (
    SELECT t1.id
    FROM (
        SELECT t.id, t.name, t.seq 
        FROM tree t 
        WHERE t.`type` = 10
        AND t.depth = 1 
        ORDER BY t.id
    ) AS t1
);

SELECT t.id, t.name, t.seq 
FROM tree t 
WHERE t.`type` = 10
AND t.depth = 1 
ORDER BY t.id
;

links

social