Документація - ваш друг; ви повинні це прочитати!
Він говорить:
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`