MySQL の CASE 式を理解する
直感的な "if" ステートメントとは異なり、MySQL の CASE 構文は "switch" ステートメントを模倣しています。条件を評価し、対応する結果を返すための 2 つの異なる形式が提供されます。
比較ステートメントを含む構文:
CASE</p> <div class="code" style="position:relative; padding:0px; margin:0px;"><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> <div class="code" style="position:relative; padding:0px; margin:0px;"><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> <div class="code" style="position:relative; padding:0px; margin:0px;"><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 サイトの他の関連記事を参照してください。