MySQL CASE 式は、制御フロー関数の一部であり、これにより、 if-else または if-then-else クエリに対するロジック。この式は、SELECT、WHERE、ORDER BY 句など、有効なプログラムまたはクエリを使用するどこでも使用できます。
CASE 式はさまざまな条件を検証し、最初の条件が次の場合に結果を返します。 真実 。条件が満たされると、トラバースが停止し、出力が行われます。 true の条件が見つからない場合は、 それ以外のブロック 。 else ブロックが見つからない場合は、 ヌル 価値。主な目標は、 MySQL CASE 文は、SELECT 句内の複数の IF 文を処理します。
CASE ステートメントは次の 2 つの方法で使用できます。
1. 単純な CASE ステートメント:
最初の方法は、以下に示すように、値を取得し、それを指定されたステートメントと照合することです。
Javaの文字列を置き換える
構文
CASE value WHEN [compare_value] THEN result [WHEN [compare_value] THEN result ...] [ELSE result] END
最初のときに結果を返します。 比較値 比較が真になります。それ以外の場合は、else 句が返されます。
例
mysql> SELECT CASE 1 WHEN 1 THEN 'one' WHEN 2 THEN 'two' ELSE 'more' END;
出力
上記のコマンドが正常に実行されると、次の出力が表示されます。
2. 検索された CASE ステートメント:
2 番目の方法は、 検索条件 の中に いつ 句が見つかった場合は、対応する THEN 句で結果を返します。それ以外の場合は、else 句が返されます。 else 句が指定されていない場合は、NULL 値が返されます。
構文
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
例
mysql> SELECT CASE BINARY 'B' WHEN 'a' THEN 1 WHEN 'b' THEN 2 END;
出力
戻り値の型
CASE 式は、使用されるコンテキストに応じて結果を返します。例えば:
- 文字列コンテキストで使用される場合は、文字列の結果が返されます。
- 数値コンテキストで使用される場合は、整数、浮動小数点数、10 進数値を返します。
MySQL バージョンのサポート
CASE ステートメントは、次の MySQL バージョンをサポートできます。
Java定数
- MySQL 8.0
- MySQL 5.7
- MySQL 5.6
- MySQL 5.5
- MySQL 5.1
- MySQL 5.0
- MySQL 4.1
- MySQL 4.0
- MySQL 3.23.3
テーブルを作成しましょう ' 学生 ' そして、このテーブルに対して CASE ステートメントを実行します。
上の表では、次のことがわかります。 クラス列 学生の学部の短縮形が含まれます。そのため、部門の短縮形を完全な形に変更する予定です。次に、この操作を行うために次のクエリを実行します。
SELECT studentid, firstname, CASE class WHEN 'CS' THEN 'Computer Science' WHEN 'EC' THEN 'Electronics and Communication' ELSE 'Electrical Engineering' END AS department from students;
上記のクエリが正常に実行されると、次の出力が得られます。ここで、次のことがわかります。 部門 列には短い形式ではなく完全な形式が含まれています。