sql >> Databáze >  >> RDS >> Mysql

Pokud nebude nalezen jeden řádek, vrátí výchozí hodnotu

Jeden způsob, jak to udělat

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

Protože vracíte pouze jeden řádek, můžete použít agregační funkci, v tom případě MIN() , což zajistí, že dostanete NULL pokud nejsou vybrány žádné záznamy. Poté IFNULL() nebo COALESCE() udělá svou práci.



  1. MySql Processlist plný záznamů spánku vedoucích k příliš mnoha připojením?

  2. Řetězec dotazu MySQL obsahuje

  3. Co je PostgreSQL?

  4. postgresql:datový typ pro md5 message digest?