> 데이터 베이스 > MySQL 튜토리얼 > 숫자 열 및 검색 조건을 사용하여 MySQL에서 CASE WHEN을 올바르게 사용하는 방법은 무엇입니까?

숫자 열 및 검색 조건을 사용하여 MySQL에서 CASE WHEN을 올바르게 사용하는 방법은 무엇입니까?

Susan Sarandon
풀어 주다: 2025-01-02 14:41:40
원래의
1016명이 탐색했습니다.

How to Correctly Use CASE WHEN in MySQL with Numeric Columns and Search Conditions?

MySQL에서 CASE..WHEN의 올바른 사용

MySQL에서 CASE..WHEN 구문을 사용하면 사용자가 여러 조건을 평가하고 해당 결과를 반환할 수 있습니다. 그러나 검색 조건 및 숫자 열과 함께 CASE를 사용하면 일반적인 문제가 발생합니다.

원래 쿼리 및 문제:

쿼리에서 CASE 문은 base_price를 평가합니다. base_price가 십진수(8,0)로 정의되는 열:

SELECT
   CASE course_enrollment_settings.base_price
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    ...
    ELSE 6
   END AS 'calc_base_price',
   course_enrollment_settings.base_price
FROM
    course_enrollment_settings
WHERE course_enrollment_settings.base_price = 0;
로그인 후 복사

이 결과 쿼리는 선택한 모든 행이 0인 예기치 않은 결과를 반환합니다. 여기서 base_price는 조건 3을 반환합니다.

3 0
3 0
3 0
3 0
3 0
로그인 후 복사

해결책:

이 문제를 해결하려면 열 사양 CASE를 제거한 후에는 CASE의 두 번째 형식에서는 검색 조건을 사용하는 경우 CASE라는 단어 뒤에 열 이름이 필요하지 않습니다.

SELECT
   CASE
    WHEN course_enrollment_settings.base_price = 0      THEN 1
    ...
    ELSE 6
   END AS 'calc_base_price',
   course_enrollment_settings.base_price
FROM
    course_enrollment_settings
WHERE course_enrollment_settings.base_price = 0;
로그인 후 복사

설명:

CASE에는 두 가지 다른 형식이 있습니다. 양식: 첫 번째 양식은 열 이름을 지정하지만 두 번째 양식은 그렇지 않습니다. 검색 조건을 평가할 때 두 번째 형식을 올바르게 사용하면 MySQL이 조건을 올바르게 평가하고 의도한 결과를 반환할 수 있습니다.

위 내용은 숫자 열 및 검색 조건을 사용하여 MySQL에서 CASE WHEN을 올바르게 사용하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿