我有以下select語句來獲取流的下一個計劃項目。如果沒有匹配的行,我希望它返回一個默認值。下面是我使用的線:如果未找到行,則返回默認值
SELECT `file` FROM `show`, `schedule`
WHERE `channel` = 1 AND `start_time` <= UNIX_TIMESTAMP()
AND `start_time` > UNIX_TIMESTAMP()-1800 AND `show`.`id` = `schedule`.`file`
ORDER BY `start_time` DESC LIMIT 1
這應該抓住最近預約內容,但如果查詢前年長超過30分鐘沒有。但是,如果用戶沒有計劃任何事情,我需要一個默認值,以便在流上實際播放某些內容。我已經試過如下:
SELECT COALESCE(`file`, 'default.webm') FROM `show`, `schedule`...
和:
SELECT IFNULL(`file`, 'default.webm') FROM `show`, `schedule`
然而,如果沒有行被發現總是返回一個空的結果。我怎樣才能返回一個默認值呢?
輝煌的東西!但是,如何將這個概念應用於返回多行而不是一個查詢的查詢? – Vectoria 2015-07-16 13:47:17
這不是一個很好的解決方案,正如Tomas在下面解釋的那樣(除非您查詢主鍵值)。 – Pierre 2015-10-18 07:39:33