CASE または IF ELSEIF を使用した MySQL Select ステートメント: 適切なオプションの選択
製造元の設定に基づいて製品の可視性を決定するために、MySQL は以下を提供します2 つのオプション: CASE ステートメントまたは IF ELSEIF ステートメント。これら 2 つのアプローチの違いを理解することは、最適なソリューションを選択するために重要です。
CASE ステートメント
CASE ステートメントは複数の条件を評価し、最初の条件に基づいて対応する値を返します。マッチング条件。この場合、状態は製品の状態 (新品または中古) であり、対応する値はメーカーが設定した可視性 (1、2、または 3) です。構文は次のとおりです。
CASE WHEN condition1 THEN value1 WHEN condition2 THEN value2 ... ELSE default_value END
IF ELSEIF ステートメント
IF ELSEIF ステートメントは、条件を順番に評価します。条件が true の場合、対応するコード ブロックが実行されます。複数の条件が true の場合、最初に true の条件のコード ブロックのみが実行されます。構文は次のとおりです。
IF condition1 THEN code block 1 ELSEIF condition2 THEN code block 2 ... ELSE default code block END IF
正しいオプションの選択
この特定のケースでは、CASE ステートメントがより適切な選択肢です。より読みやすいコード。製品のステータスを、対応する可視性の値に直接マッピングします。 IF ELSEIF ステートメントには複数の else if ブロックが必要になるため、コードがより複雑になり、エラーが発生しやすくなります。
CASE を使用したクエリの例
次のクエリでは CASE ステートメントを使用します。望ましい結果を達成するには:
SELECT t2.company_name, t2.expose_new, t2.expose_used, t1.title, t1.seller, t1.status, CASE status WHEN 'New' THEN t2.expose_new WHEN 'Used' THEN t2.expose_used ELSE NULL END as 'expose' FROM `products` t1 JOIN manufacturers t2 ON t2.id = t1.seller WHERE t1.seller = 4238
このクエリは、製品の詳細と、 CASE ステートメント。結果は、条件付き表示に使用できる各製品の 1 桁の露出値となります。
以上が製品の可視性に関する MySQL CASE と IF ELSEIF: どちらが優れていますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。