MySQL には、Case 式と Case ステートメントと呼ばれる 2 つの構造が用意されており、互換性があるように見えます。ただし、その特定の機能を理解することが重要です。
Case 式は条件を評価し、対応する結果を返します。通常、SELECT ステートメントや別の式の一部など、式内で使用されます。構文は次のとおりです:
CASE WHEN [condition] THEN result [WHEN [condition] THEN result ...] [ELSE result] END
例:
SELECT CASE WHEN type = 1 THEN 'foo' WHEN type = 2 THEN 'bar' ELSE 'baz' END AS name_for_numeric_type FROM sometable`
Case 式とは異なり、Case ステートメントは以下に基づいて一連のステートメントの 1 つを実行します。条件。通常、ストアド プログラムで条件付き操作を実行するために使用されます。構文は次のとおりです。
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE
例:
CASE WHEN action = 'update' THEN UPDATE sometable SET column = value WHERE condition; WHEN action = 'create' THEN INSERT INTO sometable (column) VALUES (value); END CASE
Case 式と Case ステートメントの主な違いは、その評価出力にあります。 Case 式は値を返しますが、Case ステートメントは一連のステートメントを実行します。この違いにより、適切な使用例が決まります。
Case 式の構文は MySQL のバージョン間で一貫していますが、Case ステートメントの構文はストアド プログラムと通常のクエリの間で異なる場合があります。通常のクエリで使用する場合、キーワード「END」は省略されますが、ストアド プログラムでは必須です。
**Stored Program**
CASE
WHEN ...
...
ELSE ...
END CASE
**Normal Query**
CASE
WHEN ...
...
ELSE ...
CASE
以上が主な違いと使用法に焦点を当てた、記事に適した質問ベースのタイトルをいくつか紹介します。 * MySQL の Case 式と Case ステートメント: どちらがクエリに適していますか? * MySQL の場合の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。