"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Visibilité du produit MySQL: cas vs si elseif qui est le meilleur?

Visibilité du produit MySQL: cas vs si elseif qui est le meilleur?

Publié le 2025-04-13
Parcourir:880

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

instruction SELECT MYSQL avec cas ou if ElseIF: Choisir la bonne option

pour déterminer la visibilité des produits basés sur les paramètres du fabricant, MySQL offre deux options: instruction de cas ou siif. Comprendre les différences entre ces deux approches est crucial pour sélectionner la solution optimale.

instruction de cas

L'instruction de cas évalue plusieurs conditions et renvoie une valeur correspondante basée sur la première condition correspondante. Dans ce cas, la condition est l'état du produit (nouveau ou utilisé), et la valeur correspondante est la visibilité (1, 2 ou 3) définie par le fabricant. La syntaxe est la suivante:

CASE WHEN condition1 THEN value1
WHEN condition2 THEN value2
...
ELSE default_value
END

instruction if elseif

L'instruction if elseif évalue les conditions dans un ordre séquentiel. Si une condition est vraie, le bloc de code correspondant est exécuté. Si plusieurs conditions sont vraies, seul le bloc de code pour la première condition vraie est exécutée. La syntaxe est la suivante:

IF condition1 THEN
  code block 1
ELSEIF condition2 THEN
  code block 2
...
ELSE
  default code block
END IF

choisissant la bonne option

Dans ce cas particulier, l'instruction de cas est le choix le plus approprié car il permet un code plus propre et plus lisible. Il mappe directement l'état du produit à la valeur de visibilité correspondante. L'instruction If ElseIF nécessiterait plusieurs blocs si les blocs, ce qui rend le code plus complexe et sujet aux erreurs.

Exemple de requête à l'aide de cas

La requête suivante utilise l'instruction de cas pour atteindre le résultat désiré:

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

Cette requête récupère efficacement les détails du produit avec la valeur de visibilité calculée à l'aide de l'instruction de cas. Le résultat sera une valeur d'exposition à un chiffre pour chaque produit qui peut être utilisé pour l'affichage conditionnel.

Dernier tutoriel Plus>

Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.

Copyright© 2022 湘ICP备2022001581号-3