Maison >base de données >tutoriel mysql >Comment puis-je empêcher les valeurs NULL de ruiner mes résultats MySQL CONCAT ?
Valeurs NULL déformant la fonction CONCAT dans MySQL
L'exécution d'une requête CONCAT sur une table contenant des valeurs NULL peut conduire à des résultats inattendus. Dans l'exemple fourni, les valeurs NULL dans certains champs font que l'intégralité du résultat CONCAT devient NULL.
Pour résoudre ce problème, la fonction COALESCE peut être utilisée pour gérer les valeurs NULL avec élégance. COALESCE accepte deux arguments : le champ en cours d'évaluation et la valeur à remplacer si le champ est NULL. En enveloppant chaque champ potentiellement NULL dans COALESCE, nous pouvons remplacer les valeurs NULL par une chaîne vide ('').
La requête modifiée avec COALESCE appliquée :
SELECT CONCAT(COALESCE(`affiliate_name`,''),'-',COALESCE(`model`,''),'-',COALESCE(`ip`,''),'-',COALESCE(`os_type`,''),'-',COALESCE(`os_version`,'')) AS device_name FROM devices
Cette requête renverra désormais le résultat souhaité, en ignorant les valeurs NULL et en concaténant les valeurs non NULL en une seule chaîne :
cs1-Dell-10.125.103.25-Linux-Fedora cs2-Dell-10.125.103.26-Linux-Fedora cs3-Dell-10.125.103.27- cs4-Dell-10.125.103.28-
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!