Mysql
 sql >> Base de données >  >> RDS >> Mysql

Renvoie une valeur par défaut si une seule ligne n'est pas trouvée

Une façon de faire

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

Comme vous ne renvoyez qu'une seule ligne, vous pouvez utiliser une fonction d'agrégation, dans ce cas MIN() , cela garantit que vous obtiendrez NULL si aucun enregistrement sélectionné. Alors IFNULL() ou COALESCE() fera son travail.