Документация - ваш друг; Вы должны прочитать это!
Там написано:
IFNULL(expr1,expr2)
Если expr1
не равно NULL
, IFNULL()
возвращает expr1
; в противном случае возвращается
expr2
.
А потом множество примеров. Это эквивалентно использованию троичного условного выражения со сравнением NULL
и субъекта сравнения в качестве второго операнда; что для того, чтобы попасть туда, вам не нужно использовать символы ?
и :
, это ни к чему не имеет отношения.
Итак, в вашем случае:
SELECT IFNULL(`id`, 0) FROM `table`
Если вам не хватает явного указания трех операндов (почему ?!), тогда переключитесь на IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`