假設現在有一張表:
CREATE TABLE `demo` (
`id` int(11) NOT NULL,
`score` int(11) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
然後我們有這樣的SQL語句進行查詢(表中此時無資料):
SELECT IFNULL(t.score,0) FROM demo t where t.id = 1;
SELECT COALESCE(t.score,0) FROM demo t where t.id = 1;
期望的結果是0,對吧,可輸出的值呢?
竟然都為null!應該怎麼辦才能拿到我們想要的結果呢?
SELECT IFNULL((SELECT t.score FROM demo t where t.id = 1),0) ;
SELECT COALESCE((SELECT t.score FROM demo t where t.id = 1),0);
需要通過select把值擷取後作為IFNULL和COALESCE函數的參數!