MySQL의 CASE..WHEN의 복잡성
MySQL의 CASE..WHEN 문은 조건식 평가를 위한 다양한 방법을 제공합니다. 그러나 특정 시나리오로 작업할 때 복잡성이 발생합니다.
모호한 CASE 구문
이러한 복잡성 중 하나는 CASE 표현식 내에서 base_price 열이 앞에 붙을 때 발생합니다. 예시 쿼리에서 볼 수 있듯이 WHEN 절 내에서course_enrollment_settings.base_price를 사용하면 모호성이 발생합니다.
쿼리:
SELECT CASE course_enrollment_settings.base_price WHEN course_enrollment_settings.base_price = 0 THEN 1 WHEN course_enrollment_settings.base_price<101 THEN 2 WHEN course_enrollment_settings.base_price>100 AND course_enrollment_settings.base_price<201 THEN 3 ELSE 6 END AS 'calc_base_price', course_enrollment_settings.base_price FROM course_enrollment_settings WHERE course_enrollment_settings.base_price = 0
문제:
이 쿼리에서 CASE 문은 잘못 공식화되었습니다. WHEN 뒤에course_enrollment_settings.base_price를 포함하면 조건 평가가 잘못됩니다.
해결 방법:
이 문제를 해결하려면 CASE 표현식 내에서 테이블 접두사를 제거하세요. :
SELECT CASE WHEN base_price = 0 THEN 1 ... END
두 가지 형태 CASE
CASE 문에는 두 가지 형태가 있습니다.
올바른 형식을 사용하고 중복되는 접두사를 제거하면 CASE 표현식이 조건을 정확하게 평가합니다.
위 내용은 MySQL에서 모호성을 피하고 CASE..WHEN 문을 올바르게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!