Die Dokumentation ist dein Freund; du solltest es lesen!
Es sagt:
IFNULL(expr1,expr2)
Wenn expr1
nicht NULL
, wird IFNULL()
zurückgegeben expr1
. Andernfalls wird es zurückgegeben
expr2
.
Und dann viele Beispiele. Dies entspricht der Verwendung einer ternären Bedingung mit einem Vergleich mit NULL
und dem Vergleichssubjekt als zweitem Operanden. Dass es nicht passiert, die Symbole zu verwenden ?
und :
Sie dorthin zu bringen, ist für nichts wirklich relevant.
Also in Ihrem Fall:
SELECT IFNULL(`id`, 0) FROM `table`
Wenn Sie unbedingt drei Operanden explizit angeben möchten (warum?!), Wechseln Sie zu IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`