ホームページ >データベース >mysql チュートリアル >MySQL の CASE 式は Switch ステートメントのようにどのように機能しますか?

MySQL の CASE 式は Switch ステートメントのようにどのように機能しますか?

Patricia Arquette
Patricia Arquetteオリジナル
2024-11-05 17:33:02585ブラウズ

How Does MySQL's CASE Expression Function Like a Switch Statement?

MySQL の CASE 式を理解する

直感的な "if" ステートメントとは異なり、MySQL の CASE 構文は "switch" ステートメントを模倣しています。条件を評価し、対応する結果を返すための 2 つの異なる形式が提供されます。

比較ステートメントを含む構文:

CASE</p>
<pre class="brush:php;toolbar:false">WHEN user_role = 'Manager' then 4
WHEN user_name = 'Tom' then 27
WHEN columnA <> columnB then 99
ELSE -1 --unknown

END

この形式では、有効な SQL 式を使用して複数の比較条件を指定できます。各「WHEN」句はその条件を評価し、true の場合、対応するステートメントが実行されます。

単一値の構文:

CASE user_role</p>
<pre class="brush:php;toolbar:false">WHEN 'Manager' then 4
WHEN 'Part Time' then 7
ELSE -1 --unknown

END

この簡潔な形式では、1 つの値のみを調べていることを想定しており、CASE 式の直後に複数の「WHEN」条件を指定できます。 「ELSE」句はオプションであり、「WHEN」条件がどれも満たされない場合にフォールバック値を提供します。

例への適用:

新しい「user_role」フィールドに基づいてフィールド「role_order」を作成する場合は、次のように 2 番目の構文を利用できます:

CASE user_role</p>
<pre class="brush:php;toolbar:false">WHEN 'Manager' then 5
WHEN 'Part Time' then 8
ELSE -1 --unknown

END

この式は、「user_role」が「Manager」の場合は「role_order」に値 5 を割り当て、「user_role」が「Part Time」の場合は 8 を、これらの条件のどちらも満たされない場合は -1 を割り当てます。

以上がMySQL の CASE 式は Switch ステートメントのようにどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。