Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Gibt einen Standardwert zurück, wenn eine einzelne Zeile nicht gefunden wird

Eine Möglichkeit, dies zu tun

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

Da Sie nur eine Zeile zurückgeben, können Sie eine Aggregatfunktion verwenden, in diesem Fall MIN() , das sicherstellt, dass Sie NULL erhalten wenn keine Datensätze ausgewählt sind. Dann IFNULL() oder COALESCE() wird seinen Job machen.