The documentation là bạn của bạn; Bạn nên đọc nó!
Nó nói:
IFNULL(expr1,expr2)
Nếu expr1
không NULL
, IFNULL()
lợi nhuận expr1
; nếu không sẽ 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à đối tượng so sánh là toán hạng thứ hai; rằng điều đó không xảy ra khi sử dụng các ký hiệu ?
và :
để giúp bạn ở đó không thực sự liên quan đến bất kỳ đ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 đang tuyệt vọng để cung cấp ba toán hạng một cách rõ ràng (tại sao ?!), sau đó chuyển sang IF
:
SELECT IF(`id` IS NULL, 0, `id`) FROM `table`
Nguồn
2011-12-14 14:46:51
có thể trùng lặp của [Làm thế nào để bạn viết điều kiện trong câu lệnh chọn MySQL?] (Http://stackoverflow.com/questions/1647961/how-do-you-write-a-conditional-in- a-mysql-select-statement) –