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 구문에서 사용하는 컬럼 중에 인덱스가 적용되지 않은 컬럼이 있었는데, 해당 컬럼 때문에 쿼리 성능이 급격히 떨어졌다.
실제론 위 방법 대신, 쿼리를 두 번 나눠 호출하는 방식으로 우회했다.
참고:
반응형