Powinno to ujawnić wszystkie
SELECT 4=4, 3=4, 1 or null, 0 or null
Wyjście
1 | 0 | 1 | NULL
Fakty
-
COUNT dodaje kolumny/wyrażenia, których wynikiem jest NOT NULL. Wszystko zostanie zwiększone o 1, o ile nie będzie puste. Wyjątkiem jest COUNT(DISTINCT), gdzie zwiększa się tylko wtedy, gdy nie został jeszcze zliczony.
-
Kiedy wyrażenie BOOLEAN jest używane samodzielnie, zwraca 1 lub 0.
-
Gdy wartość logiczna to
OR
-ed z NULL, jest NULL tylko wtedy, gdy jest to 0 (fałsz)
Do innych
Tak, jeśli liczba jest TYLKO pożądaną kolumną, można użyć WHERE value=4
ale jeśli jest to zapytanie, które chce policzyć czwórki oraz pobiera inne liczby/agregaty, wtedy filtr nie działa. Alternatywą byłoby SUM(value=4)
, np.
SELECT sum(value=4)
FROM test