Maison > base de données > tutoriel mysql > Comment puis-je déterminer dynamiquement la visibilité du produit dans MySQL en fonction des paramètres de région du fabricant ?

Comment puis-je déterminer dynamiquement la visibilité du produit dans MySQL en fonction des paramètres de région du fabricant ?

Mary-Kate Olsen
Libérer: 2024-11-25 00:37:12
original
474 Les gens l'ont consulté

How Can I Dynamically Determine Product Visibility in MySQL Based on Manufacturer Region Settings?

Détermination de la visibilité du produit dans MySQL à l'aide de CASE ou IF/ELSE

Dans un scénario où la visibilité du produit est déterminée par les régions définies par le fabricant, vous peut rencontrer la nécessité de calculer dynamiquement les régions visibles pour chaque produit en fonction de son statut (neuf ou utilisé) et des paramètres de région correspondants spécifiés par le fabricant. Ceci peut être réalisé en utilisant les instructions CASE ou IF/ELSE dans MySQL.

Approche de l'instruction 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
Copier après la connexion

Dans cette requête, l'instruction CASE évalue l'état du produit (neuf ou utilisé) et attribue sous condition la valeur d'exposition appropriée en fonction des paramètres expose_new ou expose_used du fabricant. Le résultat est une valeur « expose » à un chiffre pour chaque produit, indiquant sa région visible.

Approche IF/ELSE :

Alors que l'IF/ELSE vous approche tentée contient des erreurs logiques, une version corrigée pourrait être :

SELECT 
  t2.company_name,
  t2.expose_new,
  t2.expose_used,
  t1.title,
  t1.seller,
  t1.status,
  IF(status = 'New', t2.expose_new, IF(status = 'Used', t2.expose_used, NULL)) as 'expose'
FROM
  `products` t1
JOIN manufacturers t2
  ON
    t2.id = t1.seller
WHERE
  t1.seller = 4238
Copier après la connexion

Dans cette requête corrigée, l'instruction IF/ELSE attribue conditionnellement l'exposition valeur basée sur l’état du produit et les paramètres d’exposition du fabricant. Le résultat est le même que celui de l'approche de l'instruction CASE, fournissant la valeur « exposer » pour chaque produit.

En tirant parti de l'instruction CASE ou IF/ELSE dans MySQL, vous pouvez calculer efficacement les régions visibles pour les produits basés sur sur des règles spécifiées par le fabricant, permettant un affichage dynamique et conditionnel des informations sur le produit.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal