Dokumentacja jest twoim przyjacielem; powinieneś to przeczytać!
To mówi:
IFNULL(expr1,expr2)
Jeśli expr1
nie NULL
, IFNULL()
zwraca expr1
; w przeciwnym razie wraca
expr2
.
A potem mnóstwo przykładów. Jest to równoważne użyciu warunku trójskładnikowego z porównaniem NULL
i podmiotem porównania jako drugim operandem; że nie zdarza się, że używa się symboli ?
i :
aby cię tam dostać, nie ma znaczenia.
A więc w twoim przypadku:
SELECT IFNULL(`id`, 0) FROM `table`
Jeśli jesteś zdesperowany, aby jawnie podać trzy operandy (dlaczego ?!), przełącz na IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`