我有以下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