33 Voix

MySQL: Vérifier si une Valeur est NULL

Question de Compi | 01/05/2021 à 12:30

Je voudrais vérifier si un champ ou le contenu d'un champ d'une colonne est NULL à l'aide de MySQL.

Pour cela, j'ai construit la requête suivante:

SELECT id, IFNULL(col, 0, col) FROM tab

Cette requête doit soit lire la valeur de la colonne «col» dans le cas où «col» n'est pas NULL ou 0 si elle est NULL.

Malheureusement, la requête ne fonctionne pas de cette manière. Je reçois toujours le message d'erreur suivant:

#1582 - Incorrect parameter count in the call to native function 'IFNULL'

Quelqu'un peut-il me dire comment réécrire cette requête de base de données afin qu'elle fonctionne correctement? Autant que je sache, le IF normal attend 3 paramètres, alors qu'est-ce que je fais de mal ici?

RépondrePositifNégatif
2Meilleure Réponse2 Voix

Il existe deux possibilités que vous pouvez utiliser pour modifier votre requête.

Vous pouvez écrire

SELECT id, IF(col IS NULL, 0, col) FROM tab

ou vous pouvez modifier votre requête en:

SELECT id, IFNULL(col, 0) FROM tab

La première requête utilise le IF normal de MySQL. Comme premier paramètre, vous spécifiez "col IS NULL", avec lequel vous vérifiez si "col" est NULL. En conséquence, en tant que deuxième et troisième paramètres, vous pouvez spécifier ce qui doit être renvoyé en fonction de la condition. C'est 0 si la condition est TRUE ("col" est NULL) ou le contenu de "col" dans le cas où la condition est FALSE ("col" n'est pas NULL).

Le deuxième exemple montre comment utiliser correctement IFNULL. IFNULL attend deux paramètres: D'abord la valeur à vérifier (dans votre cas le contenu de "col") et comme second paramètre la valeur qui doit être retournée si le premier paramètre est NULL. Sinon, le premier paramètre est renvoyé.

Bien sûr, la première méthode a toujours un avantage lorsque vous ne voulez pas simplement lire le contenu de la colonne correspondante, par exemple si vous souhaitez renvoyer un contenu alternatif ou si vous souhaitez modifier le contenu original de la colonne .
01/05/2021 à 18:45

RépondrePositif Négatif
Répondre

Sujets Connexes

MySQL: SELECT 0 au lieu de NULL

Question | 4 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.