Maison >base de données >tutoriel mysql >Comment puis-je simuler la logique IF ELSE dans les requêtes MySQL ?

Comment puis-je simuler la logique IF ELSE dans les requêtes MySQL ?

DDD
DDDoriginal
2024-12-01 15:30:15533parcourir

How Can I Simulate IF ELSE Logic in MySQL Queries?

Comment émuler les instructions IF ELSE dans les requêtes MySQL

Dans MySQL, les instructions IF ELSE ne sont pas prises en charge nativement. Cependant, vous pouvez obtenir des fonctionnalités similaires en utilisant l'expression CASE.

Comprendre les expressions CASE

L'expression CASE évalue une série de conditions et renvoie un résultat basé sur la première correspondance condition. Il prend la forme suivante :

CASE
  WHEN condition1 THEN result1
  WHEN condition2 THEN result2
  ...
  ELSE default_result
END

Exemple

Pour reproduire l'instruction IF ELSE dans votre question, vous utiliserez une expression CASE comme suit :

SELECT col1, col2, 
  (CASE 
    WHEN (action = 2 AND state = 0) THEN 1
    ELSE 0
  END) AS state
FROM tbl1;

Dans cette requête :

  • La condition (action = 2 ET état = 0) vérifie si la colonne action est égale à 2 et la colonne état est égale à 0.
  • Si cette condition est vraie, elle renvoie la valeur 1.
  • Sinon, elle renvoie la valeur 0.
  • La valeur résultante est affectée à l'état d'alias dans la liste SELECT.

Accès au Valeur renvoyée

Une fois la requête exécutée, vous pouvez accéder à la valeur calculée dans la colonne d'état de l'ensemble de résultats. Dans votre exemple, vous pouvez utiliser le code suivant :

$row['state'] 
// This should equal 1

Notez que cette requête calcule uniquement la valeur de state en fonction des conditions spécifiées dans l'expression CASE. Il ne met pas à jour la colonne d'état dans la base de données.

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!

Déclaration:
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