Einen Standardwert zurückgeben, wenn die Abfrage keine Zeilen zurückgibt
Wenn eine SQL-Abfrage zum Abrufen von Daten verwendet wird und keine passenden Zeilen gefunden werden, kann dies der Fall sein Es kann nützlich sein, einen Standardwert anstelle eines leeren Ergebnisses zurückzugeben. Dies ist besonders nützlich, wenn Sie sicherstellen möchten, dass immer etwas angezeigt wird, auch wenn keine Daten angezeigt werden müssen.
Bedenken Sie die folgende SQL-Anweisung:
<code class="sql">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</code>
Diese Abfrage versucht abzurufen das nächste geplante Element für einen bestimmten Kanal, aber wenn keine passende Zeile gefunden wird, wird ein leeres Ergebnis zurückgegeben. Um stattdessen einen Standardwert zurückzugeben, können Sie die Funktionen COALESCE oder IFNULL verwenden:
<code class="sql">SELECT COALESCE(`file`, 'default.webm') `file` ... SELECT IFNULL(`file`, 'default.webm') `file` ...</code>
Diese Lösungen geben jedoch möglicherweise ein leeres Ergebnis zurück, wenn keine Zeilen gefunden werden. Um sicherzustellen, dass immer ein Standardwert zurückgegeben wird, können Sie eine Aggregatfunktion wie MIN() verwenden, um einen NULL-Wert bereitzustellen, wenn keine Datensätze ausgewählt sind. Die folgende Anweisung verwendet diese Technik:
<code class="sql">SELECT IFNULL(MIN(`file`), 'default.webm') `file` ...</code>
Durch die Verwendung der Funktion MIN() können Sie garantieren, dass NULL zurückgegeben wird, wenn keine Zeilen ausgewählt sind. Anschließend ersetzt die Funktion IFNULL() den NULL-Wert durch den Standardwert und stellt so sicher, dass immer etwas angezeigt wird.
Das obige ist der detaillierte Inhalt vonWie kann ein Standardwert zurückgegeben werden, wenn eine SQL-Abfrage keine Zeilen zurückgibt?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!