A documentação é sua amiga; você deveria ler!
Diz:
IFNULL(expr1,expr2)
Se expr1
não for NULL
, IFNULL()
retorna expr1
; caso contrário, ele retorna
expr2
.
E então muitos exemplos. Isso é equivalente a usar uma condicional ternária com uma comparação NULL
e o sujeito de comparação como o segundo operando; que não acontece de usar os símbolos ?
e :
chegar lá não é realmente relevante para nada.
Então, no seu caso:
SELECT IFNULL(`id`, 0) FROM `table`
Se você está desesperado para fornecer três operandos explicitamente (por quê ?!), mude para IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`