У меня есть следующий оператор 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`
Однако он всегда возвращает пустой результат, если строки не найдены. Как я могу вернуть значение по умолчанию вместо?