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
このクエリは、基本価格がゼロのコースを取得し、条件付きで割り当てることを目的としています。価格範囲に基づいて「calc_base_price」の値。ただし、結果は、base_price 0 のすべての行に対して「3」を返します。
これを修正するには、CASE の後の列名を削除することが重要です。
SELECT CASE WHEN base_price = 0 THEN 1 ... END
これにより、CASE が確実にステートメントは条件を正しく評価し、各行に適切な値を返します。 CASE ステートメントには 2 つの形式があります。1 つはターゲット列名を含むもので、もう 1 つはターゲット列名を含まないものです。このシナリオでは、検索条件を使用する 2 番目の形式が必要です。
以上が予期しない結果を避けるために MySQL の CASE..WHEN ステートメントを正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。