Daylogs/DB

MySQL: IN, NOT IN 구문에 여러 컬럼 사용하기

ohgyun 2016. 12. 21. 10:59
발생일: 2016.12.14

키워드: mysql, in multiple column

문제:
WHERE 절의 IN, NOT IN 쿼리 구문에 여러 컬럼을 사용하고 싶다.

해결책:
IN, NOT IN 구문으로 비교할 컬럼을 괄호로 묶어 처리하면 된다.

SELECT *
FROM task
WHERE
    (user_id, task_id) NOT IN (
        SELECT user_id, task_id
        FROM task_queue
    );


논의:
IN 구문에서 사용하는 컬럼 중에 인덱스가 적용되지 않은 컬럼이 있었는데, 해당 컬럼 때문에 쿼리 성능이 급격히 떨어졌다.
실제론 위 방법 대신, 쿼리를 두 번 나눠 호출하는 방식으로 우회했다.



참고:


반응형