집 >데이터 베이스 >MySQL 튜토리얼 >예기치 않은 결과를 피하기 위해 MySQL의 CASE..WHEN 문을 어떻게 올바르게 사용할 수 있습니까?
MySQL의 CASE..WHEN 문 이해
MySQL로 작업할 때 CASE..WHEN 문은 평가를 위한 유용한 도구입니다. 여러 조건을 적용하고 해당 조건에 따라 다른 값을 반환합니다. 그러나 예상치 못한 결과를 피하기 위해 올바르게 사용하는 구체적인 방법이 있습니다.
다음 쿼리를 고려하십시오.
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
쿼리는 기본 가격이 0인 강좌를 가져오고 조건부로 할당하는 것을 목표로 합니다. 가격대에 따른 'calc_base_price' 값입니다. 그러나 결과는 base_price가 0인 모든 행에 대해 '3'을 반환합니다.
이 문제를 해결하려면 CASE 뒤의 열 이름을 제거하는 것이 중요합니다.
SELECT CASE WHEN base_price = 0 THEN 1 ... END
이렇게 하면 CASE가 문은 조건을 올바르게 평가하고 각 행에 대해 적절한 값을 반환합니다. CASE 문에는 대상 열 이름이 있는 형식과 대상 열 이름이 없는 형식의 두 가지 형식이 있습니다. 이 시나리오에서는 검색 조건을 사용하는 두 번째 형식이 바람직합니다.
위 내용은 예기치 않은 결과를 피하기 위해 MySQL의 CASE..WHEN 문을 어떻게 올바르게 사용할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!