0
WHERE 절에 CASE WHEN 조건이있는 함수가 있습니다. 간단하게 (매우 간단)는 다음과 같습니다 및 원조이인덱싱 된 열이있는 WHERE 절에서 "CASE WHEN"
SELECT *
FROM mytable t
WHERE (
CASE aPARAM WHEN 'a' THEN t.a = aID
WHEN 'b' THEN t.b = aID
WHEN 'c' THEN t.c = aID
ELSE TRUE END
)
aPARAM - 테이블의 인덱스 컬럼 "MYTABLE - 기능
, B및 C에게
를 PARAMS "그러나이 경우 MySQL은 인덱스를 전혀 사용하지 않습니다.
예,이 쿼리에는 다른 조건을 선택하는 조건이 있지만 결과 값에 의존하지 않으며 쿼리를 실행하기 전에 계산할 수 있습니다.
인덱스를 사용하기 위해이 함수에 제안 할 수있는 것은 무엇입니까?
완벽한 !!! 이 변형을 사용했지만 마지막 조건을 놓쳤습니다. 감사. – Vitaly