MySQL CASE の仕組みを理解する
MySQL の CASE ステートメントは条件式として機能し、指定された基準に基づいて値を動的に割り当てることができます。その構文は if ステートメントに似ていますが、その動作は異なります。
CASE ステートメントの操作
CASE ステートメントの一般的な構文は次のとおりです。
CASE WHEN search_condition THEN statement_list [WHEN search_condition THEN statement_list] ... [ELSE statement_list] END CASE
このコンテキストでは、search_condition は、関連付けられたstatement_list が実行されるかどうかを決定する比較を表します。 statement_list には、有効な MySQL 式を含めることができます。
ロールの順序付けの使用例
user_role フィールドの値に応じて異なる番号を持つフィールド role_order を生成するには、次のようにします。 CASE ステートメントは次のように使用できます。
CASE user_role WHEN 'Manager' THEN 5 WHEN 'Part Time' THEN 7 ELSE -1 -- Unknown END
この例では、CASE ステートメントは switch ステートメントとして機能します。 user_role が「Manager」と等しい場合、値 5 が role_order に割り当てられます。同様に、user_role が「Part Time」に等しい場合、値 7 が role_order に割り当てられます。 user_role が指定された条件のいずれにも一致しない場合、デフォルトとして値 -1 が割り当てられます。
代替構文
MySQL は CASE ステートメントの代替構文を提供します1 つの値だけを調べている場合。この構文はより簡潔で、次のように使用できます:
CASE WHEN user_role = 'Manager' THEN 4 WHEN user_name = 'Tom' THEN 27 WHEN columnA <> columnB THEN 99 ELSE -1 -- Unknown END
この代替形式では、比較される値 (user_role) が最初に指定され、その後に WHEN 条件が続きます。
CASE ステートメントの仕組みとそのスイッチのような動作を理解することで、これを効果的に使用して、MySQL クエリの特定の基準に基づいて値を割り当てることができます。
以上がMySQL の CASE ステートメントはどのように機能しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。