La documentación es tu amiga; ¡deberías leerlo!
Dice:
IFNULL(expr1,expr2)
Si expr1
no es así NULL
, IFNULL()
vuelve expr1
; de lo contrario, vuelve
expr2
.
Y luego muchos ejemplos. Esto es equivalente a usar un condicional ternario con una comparación NULL
ay el sujeto de comparación como segundo operando; que no use los símbolos ?
y :
que llegue allí no es realmente relevante para nada.
Entonces, en tu caso:
SELECT IFNULL(`id`, 0) FROM `table`
Si está desesperado por proporcionar tres operandos explícitamente (¿por qué?), Cambie a IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`