MySQL: SELECT 0 au lieu de NULL
Question de Invité | 04/05/2021 à 15:47
Dans l'une de mes requêtes MySQL, il peut arriver de temps en temps que les résultats contiennent l'une ou l'autre valeur NULL, car la cellule correspondante n'a pas encore été ajoutée à la base de données.
Pour pouvoir néanmoins traiter les valeurs dans mon script PHP, j'aimerais que MySQL renvoie le nombre "0" au lieu de "NULL".
Existe-t-il une possibilité dans MySQL de déterminer directement dans la requête que "0" doit être renvoyé chaque fois que le résultat est "NULL"?
Sujets Connexes
MySQL: Sauts de Ligne dans MySQL
Conseil | 0 Commentaires
MySQL: Vérifier si une Valeur est NULL
Question | 1 Réponse
HTML: Préaffecter un Formulaire HTML avec des Données
Tutoriel | 0 Commentaires
MySQL: Comment utiliser IFNULL- Erreur: Mauvais Nombre de Paramètres
Question | 1 Réponse
MySQL/PHP: Comment récupérer le dernier INSERT ID
Info | 0 Commentaires
PHP: Enregistrer Résultat MySQL dans un Array
Info | 0 Commentaires
MySQL: Comment vérifier si un champ est NULL ou vide
Question | 3 Réponses
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.
Vous pouvez simplement utiliser la fonction COALESCE().
Voici un petit exemple:
Dans cette requête, nous aimerions lire les colonnes "id" et "col" de la table "tab". Dans le cas où la valeur provenant de "col" est "NULL", nous aimerions avoir "0" plutôt que "NULL".
COALESCE() renvoie la première valeur qui n'est pas NULL à partir de la ligne des paramètres passés. Ainsi, l'utilisation de COALESCE(col, 1) renverrait "1" chaque fois que "col" est NULL.
Vous pouvez également utiliser cette fonction avec plusieurs paramètres. Par exemple, COALESCE(col1, col2, 0). Ici, le résultat serait "col1" chaque fois que la valeur de "col1" n'est pas NULL. Si "col1" est NULL, MySQL essaie la valeur de "col2" et la renvoie si elle n'est pas NULL. Si les deux, "col1" et "col2" sont NULL, MySQL retombe sur 0.
05/05/2021 à 12:45
Au lieu de COALESCE(), vous pouvez également utiliser la fonction IFNULL().
La construction peut être utilisée de la même manière que COALESCE():
C'est: si la première valeur passée à IFNULL est NULL (ici la valeur de "col"), prenez la deuxième valeur (ici 0).
Cependant, vous ne pouvez utiliser IFNULL() qu'avec 2 paramètres. Son utilisation n'est donc pas aussi flexible que COALESCE().
05/05/2021 à 23:47
Un autre petit conseil: dans MySQL, une valeur DEFAULT peut être définie pour chaque colonne.
Peut-être que cela peut vous aider. Parce que si vous définissez la valeur DEFAULT de votre colonne sur «0», cette valeur est écrite automatiquement dans chaque nouvelle cellule lorsqu'une nouvelle ligne est ajoutée à la base de données.
Bien sûr, cette astuce ne peut pas être utilisée lorsque vous essayez des valeurs de lignes inexistantes.
06/05/2021 à 22:37
Une autre possibilité est d'utiliser la condition IF de MySQL:
Dans cette condition IF, nous vérifions si "col" est NULL via "col IS NULL". Si oui, nous retournons l'alternative (ici c'est 0); sinon, nous retournons le contenu de "col".
07/05/2021 à 20:03