MySQL での CASE..WHEN ステートメントの正しい使用
MySQL では、CASE..WHEN ステートメントを使用してさまざまな条件を評価し、各条件に基づいて特定の結果を返します。ただし、予期しない結果を避けるために、適切に使用することが重要です。
質問:
CASE..WHEN ステートメントを実行して、base_price が 0 であるレコードをフェッチする場合、指定された値が次であるにもかかわらず、最初の条件の代わりに値 3 の条件が選択されるのはなぜですか? 0?
答え:
問題は CASE ステートメントの構文にあります。指定されたクエリ:
ステートメントは条件を評価し、最初に一致した条件を返します。ただし、列名 course_enrollment_settings.base_price が CASE ステートメントの直後に繰り返されているため、構文は正しくありません。これにより、ステートメントが自身の結果を残りの条件と比較することになり、常に 3 つの条件が選択されることになります。
問題を解決するには、その時点から列名を削除します:
CASE ステートメントは、不必要な繰り返しを行わずに条件を正しく評価し、期待どおりの結果を保証するようになりました。
以上が「base_price」が 0 の場合、MySQL CASE WHEN ステートメントが間違った条件を選択するのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。