Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Retorna um valor padrão se uma única linha não for encontrada


Uma maneira de fazê-lo
SELECT IFNULL(MIN(`file`), 'default.webm') `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

Como você retorna apenas uma linha, você pode usar uma função de agregação, nesse caso MIN() , isso garante que você obterá NULL se nenhum registro for selecionado. Então IFNULL() ou COALESCE() fará o seu trabalho.