Mam następujące polecenie wyboru, aby pobrać następny zaplanowany element dla strumienia. Jeśli nie ma zgodnego wiersza, chcę, aby zwrócił wartość domyślną. Oto linia Używam:Zwróć wartość domyślną, jeśli nie znaleziono wierszy.
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
To powinno chwycić ostatnio zaplanowaną pozycję, ale nie jeśli jest starszy niż 30 minut przed zapytania. Jeśli jednak użytkownik niczego nie planuje, chcę mieć wartość domyślną, aby coś faktycznie było odtwarzane w strumieniu. Próbowałem następujące:
SELECT COALESCE(`file`, 'default.webm') FROM `show`, `schedule`...
oraz:
SELECT IFNULL(`file`, 'default.webm') FROM `show`, `schedule`
Jednak zawsze zwraca pusty wynik, jeśli nie zostaną znalezione żadne wiersze. Jak mogę zamiast tego zwrócić wartość domyślną?
Wspaniałe rzeczy! Ale w jaki sposób można zastosować tę koncepcję do zapytania zwracającego wiele wierszy zamiast jednego, jak w naszym przypadku? – Vectoria
To naprawdę nie jest dobre rozwiązanie, jak wyjaśnia Tomas poniżej (chyba, że zapytanie o wartość klucza podstawowego). – Pierre