Tài liệu là bạn của bạn; Bạn nên đọc nó!
Nó nói rằng:
IFNULL(expr1,expr2)
Nếu expr1
không NULL
, IFNULL()
trả về expr1
; nếu không thì nó trả về
expr2
.
Và sau đó là rất nhiều ví dụ. Điều này tương đương với việc sử dụng một điều kiện bậc ba với một so sánh với NULL
và chủ thể so sánh làm toán hạng thứ hai; rằng nó không xảy ra khi sử dụng các biểu tượng ?
và :
bạn không thực sự liên quan đến bất cứ điều gì.
Vì vậy, trong trường hợp của bạn:
SELECT IFNULL(`id`, 0) FROM `table`
Nếu bạn muốn cung cấp ba toán hạng một cách rõ ràng (tại sao ?!), thì hãy chuyển sang IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`