ホームページ  >  記事  >  データベース  >  MySQL の CASE ステートメントはどのように機能しますか?

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

Barbara Streisand
Barbara Streisandオリジナル
2024-11-05 07:59:02171ブラウズ

How Does MySQL's CASE Statement Work?

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 サイトの他の関連記事を参照してください。

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