MySQLのCASE関数を使って複数条件判定を行う方法

WBOY
リリース: 2023-07-12 23:52:35
オリジナル
2729 人が閲覧しました

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート