-2
votes

Remplacer null avec zéro dans la requête SQL

J'ai une requête SQL qui pourrait potentiellement renvoyer des valeurs nulles, en cas de problème, je souhaite que la requête retourne '0'. Voici la requête

   SELECT (select count(goal) from fixtures where goal='1' and fixture='$fixture') as goalCountHome
from fixtures where fixture='$fixture'LIMIT 1


4 Réponses :


2
votes

dans MySQL Utilisez une fonction ifnull (). Pour MSSQL, utilisez ISNULL () Fonction.


0 commentaires

2
votes

Si vous utilisez mysql, ifnull (, 0) devrait faire.


0 commentaires

0
votes

Si vous avez besoin de toutes les lignes et non des lignes où l'objectif n'est pas null, vous pouvez utiliser compter (*) xxx

compte (objectif) retourner le numéro des rangées où l'objectif n'est pas nul Count (*) Renvoie les lignes de nombre total sélectionnées

sinon en général lorsque vous n'avez pas besoin de valeurs nulles dans MySQL, vous pouvez ifnull (votre_column, valeur) ou coalesce (votre_column, valeur)

basé sur votre commentaire semble avoir besoin de somme (objectif) xxx


7 commentaires

Fondamentalement, si un objectif n'a pas été marqué, je souhaite que le nombre de personnes reviennent zéro. À la minute où la requête renvoie NULL qui conduit alors à un préavis variable non défini dans mon PHP. Si le résultat est null, je veux qu'il retourne zéro donc je ne reçois pas cet avis


J'ai mis à jour la réponse parce que vous pourriez être que vous recherchez une somme conditionnelle au lieu d'un compte


Merci pour votre aide d'aide. Cependant, cette requête renvoie NULL dans la boîte au lieu de zéro


Réponse mise à jour en utilisant 1 au lieu de "1" pourrait être un objectif est un nombre


somme (ifnull (but, 0)) null


C'est ce qui est retourné


quel type de données est objectif? Et êtes-vous sûr qu'il y a des lignes pour $ fixture?



1
votes

Cette requête: xxx

ne peut pas retour null valeurs. La sous-requête est une requête d'agrégation sans groupe par , de sorte qu'il retourne toujours une ligne. Cette ligne contiendra un résultat de compteur () . Nombre () peut ne jamais renvoyer un NULL . S'il n'y a pas de lignes, la valeur sera nulle.

La requête extérieure peut revenir aucune ligne mais qui est différente de NULL NULL . < / p>

Bien sûr, cette requête est globalement surcpliquée et devrait simplement être: xxx

Notez que vous devez passer des paramètres à l'aide des paramètres appropriés plutôt que de la requête mungue cordes.


0 commentaires