To by mělo odhalit vše
SELECT 4=4, 3=4, 1 or null, 0 or null
Výstup
1 | 0 | 1 | NULL
Fakta
-
COUNT sečte sloupce / výrazy, které se vyhodnotí jako NOT NULL. Cokoli se zvýší o 1, pokud to není null. Výjimkou je COUNT(DISTINCT), kde se zvyšuje, pouze pokud již není započítán.
-
Když je výraz BOOLEAN použit samostatně, vrátí buď 1, nebo 0.
-
Když je logická hodnota
OR
-ed s NULL, je NULL, pouze když je 0 (nepravda)
Ostatním
Ano, pokud je počet požadovaným JEDINÝM sloupcem, lze použít WHERE value=4
ale pokud se jedná o dotaz, který chce počítat 4 stejně jako načtení dalších počtů/agregátů, pak filtr nefunguje. Alternativou by bylo SUM(value=4)
, např.
SELECT sum(value=4)
FROM test