MySQL で CASE 関数を使用して複数条件判定を行う方法
MySQL データベースでは、CASE 関数はクエリ文で複数条件判定を行うことができる非常に強力なツールです。これにより、複雑なビジネス ニーズを満たすために、さまざまな条件に基づいてさまざまな結果を返すことができます。この記事では、MySQL の CASE 関数を使って複数条件判定を行う方法とコード例を紹介します。
CASE 関数の構文構造は次のとおりです。
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 WHEN condition3 THEN result3 ... ELSE result END
この構文構造では、さまざまな条件に応じてさまざまな結果 (結果) を返すことができます。すべての条件が満たされない場合は、ELSE キーワードを使用してデフォルトの結果を指定できます。
ここで、学生の名前、年齢、成績を格納する students という名前のテーブルがあるとします。生徒を成績に応じて分類し、年齢に基づいて 10 代であるかどうかを判断する必要があります。以下は、CASE 関数を使用して複数条件を判定するサンプルコードです。
SELECT name, age, grade, CASE WHEN grade >= 90 THEN '优秀' WHEN grade >= 80 THEN '良好' WHEN grade >= 70 THEN '中等' ELSE '不及格' END AS level, CASE WHEN age >= 12 AND age <= 18 THEN '青少年' ELSE '成年人' END AS category FROM students;
上記のコードでは、2 つの CASE 関数を使用して生徒の学年と年齢を判定し、それぞれ異なる結果を返します。スコアに応じて等級が分けられ、90点以上であれば優、80点以上であれば優、80点以上であれば優となります。 70 点であれば平均、それ以外の場合は不合格です。分類は年齢に基づいており、12 歳から 18 歳までの場合は 10 代、それ以外の場合は成人です。
CASE 関数では、基本的な条件判定に加え、論理演算子を使用して複数の条件を組み合わせることができます。学生の成績と出席状況をそれぞれ判定し、判定結果に応じて異なる報酬を与える必要があるとします。コード例は次のとおりです:
SELECT name, attendance, grade, CASE WHEN grade >= 90 AND attendance = '100%' THEN '获奖' WHEN grade >= 80 OR attendance = '100%' THEN '鼓励' ELSE '加油' END AS reward FROM students;
上記のコードでは、2 つの条件判定を使用しています。出席に対してさまざまな報酬が与えられます。得点が90点以上で出席率が100%の場合は表彰され、得点が80点以上または出席率が100%の場合は奨励され、それ以外の場合は、乾杯。
上記のコード例を通じて、MySQL の CASE 関数を使用して複数条件の判定を行う方法を学びました。 CASE 関数は、複雑な条件判断ロジックを簡素化するだけでなく、柔軟な構文構造も提供し、さまざまな条件に基づいてさまざまな結果を返すことができます。実際の開発においては、CASE機能を業務ニーズに合わせて柔軟に活用することで、データベース運用をより効率的かつ便利に行うことができます。
以上がMySQLのCASE関数を使って複数条件判定を行う方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。