ホームページ  >  記事  >  データベース  >  製品の可視性に関する MySQL CASE と IF ELSEIF: どちらが優れていますか?

製品の可視性に関する MySQL CASE と IF ELSEIF: どちらが優れていますか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-24 10:40:12562ブラウズ

MySQL CASE vs. IF ELSEIF for Product Visibility: Which is Better?

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

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