Standardwerte mit leeren Ergebnissätzen zurückgeben
Beim Abfragen einer Datenbank kommt es häufig vor, dass Szenarien behandelt werden, in denen keine passenden Zeilen gefunden werden. Um leere Ergebnisse zu vermeiden, können Sie stattdessen einen Standardwert zurückgeben.
In Ihrem Fall möchten Sie das nächste geplante Element für einen Stream auswählen. Wenn kein Element geplant ist, möchten Sie einen Standardwert, um sicherzustellen, dass der Stream Inhalte abspielt.
Sie haben erfolglos versucht, COALESCE und IFNULL zu verwenden. Es gibt jedoch einen etwas anderen Ansatz, der funktioniert:
<code class="sql">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</code>
Durch die Verwendung von MIN() als Aggregatfunktion stellen Sie sicher, dass ein NULL-Wert zurückgegeben wird, wenn keine Zeilen ausgewählt sind. Dann können IFNULL oder COALESCE NULL durch Ihren Standardwert, in diesem Fall „default.webm“, ersetzen.
Mit dieser Methode können Sie einen Standardwert abrufen, wenn die Abfrage keine Ergebnisse zurückgibt, wodurch das Fehlen einer Übereinstimmung effektiv behandelt wird Zeilen.
Das obige ist der detaillierte Inhalt vonWie werden Standardwerte für leere Ergebnismengen in Datenbankabfragen zurückgegeben?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!