Renvoyer une valeur quel que soit le résultat de la requête
Lors de l'interrogation d'une base de données, il est courant de rencontrer des situations dans lesquelles vous devez renvoyer une valeur même si la requête ne produit aucun résultat. Par exemple, vous souhaiterez peut-être afficher une valeur d'espace réservé ou effectuer un traitement ultérieur basé sur l'existence de données.
Considérez la requête suivante, qui vise à récupérer un champ entier (field1) pour un ID donné (id) :
SELECT field1 FROM table WHERE id = 123 LIMIT 1;
Si aucun enregistrement avec l'ID spécifié n'existe, l'ensemble de résultats sera vide. Cependant, vous devrez peut-être que la requête renvoie une valeur malgré tout.
La fonction IFNULL
MySQL fournit la fonction IFNULL() pour résoudre ce scénario. Il faut deux arguments :
En combinant IFNULL() avec une sous-requête, vous pouvez vous assurer que la requête renvoie toujours une valeur :
SELECT IFNULL( (SELECT field1 FROM table WHERE id = 123 LIMIT 1) ,'not found');
Cette requête renverra la valeur de field1 si un enregistrement avec l'ID spécifié est trouvé, sinon il le fera renvoie la chaîne « introuvable ».
Avantages de l'utilisation d'IFNULL()
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!