MySQL Select ステートメント: メーカー設定を使用した製品の可視性の決定
目標は、ルールに基づいて製品の可視性を計算するクエリを構築することです。メーカーのテーブルで定義されています。具体的には、製品を表示できる場所 (どこでも、カナダのみ、米国のみなど) を決定したいとします。
最初のクエリは、サブクエリ内で IF/ELSEIF ステートメントを使用して可視性を計算しようとします。しかし、このアプローチは間違っています。代わりに、CASE ステートメントを使用して製品のステータスを評価し、適切な可視性レベルを割り当てることを検討してください。
提供された CASE ステートメントには小さな問題があります。製品のステータスに関係なく、常に最初の WHEN 条件が評価されます。これを修正するには、各 WHEN 句から AND 条件を削除します。
次の修正されたクエリは、望ましい結果を提供するはずです:
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
このクエリは、各製品のステータスを評価します。 ' または 'used' を返し、製造元テーブルで定義されている対応する可視性レベルを返します。
以上がメーカーの設定に基づいて MySQL での製品の可視性を判断するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。