Cela devrait tout révéler
SELECT 4=4, 3=4, 1 or null, 0 or null
Sortie
1 | 0 | 1 | NULL
Faits
-
COUNT additionne les colonnes/expressions évaluées comme NOT NULL. Tout sera incrémenté de 1, tant qu'il n'est pas nul. L'exception est COUNT(DISTINCT) où il n'incrémente que s'il n'est pas déjà compté.
-
Lorsqu'une expression BOOLEAN est utilisée seule, elle renvoie soit 1 soit 0.
-
Lorsqu'un booléen est
OR
-ed avec NULL, c'est NULL seulement quand c'est 0 (faux)
Aux autres
Oui si le nombre est la SEULE colonne souhaitée, on peut utiliser WHERE value=4
mais si c'est une requête qui veut compter les 4 ainsi que en récupérant d'autres décomptes/agrégats, le filtre ne fonctionne pas. Une alternative aurait été SUM(value=4)
, par exemple
SELECT sum(value=4)
FROM test