ホームページ >データベース >mysql チュートリアル >MySQL で曖昧さを避けて CASE..WHEN ステートメントを正しく使用するにはどうすればよいですか?
MySQL の CASE..WHEN の複雑さ
MySQL の CASE..WHEN ステートメントは、条件式を評価するための汎用性の高い方法を提供します。ただし、特定のシナリオを使用する場合は複雑さが生じます。
あいまいな CASE 構文
そのような複雑さの 1 つは、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 ステートメントは正しくありません策定された。 course_enrollment_settings.base_price を WHEN の後に含めると、条件が正しく評価されません。
解決策:
この問題を解決するには、CASE 式内のテーブル プレフィックスを削除します。 :
SELECT CASE WHEN base_price = 0 THEN 1 ... END
の 2 つの形式CASE
CASE ステートメントには 2 つの異なる形式があります:
正しい形式を使用し、冗長な接頭辞を削除することで、CASE 式は条件を正確に評価します。
以上がMySQL で曖昧さを避けて CASE..WHEN ステートメントを正しく使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。