So geben Sie einen Standardwert für fehlende SQL-Zeilen zurück
Angenommen, Sie haben eine aktive Abfrage, die Informationen aus zwei verbundenen Tabellen abruft, show und Zeitplan basierend auf bestimmten Kriterien. Wenn Ihre Abfrage keine übereinstimmenden Zeilen enthält, wie stellen Sie dann sicher, dass ein Standardwert anstelle eines leeren Ergebnisses zurückgegeben wird?
Eine Lösung besteht darin, die Funktion IFNULL() oder COALESCE() in Ihrer Abfrage zu verwenden. Diese Funktionen benötigen zwei Argumente:
IFNULL(expression, default_value) COALESCE(expression, default_value)
Ausdruck bezieht sich auf den Wert, den Sie auf Null prüfen, und Standardwert ist der Wert, den Sie zurückgeben möchten, wenn Ausdruck Null ist.
Beispiel :
<code class="sql">SELECT IFNULL(`file`, 'default.webm') AS `file` FROM `show`, `schedule`...</code>
Diese Abfrage gibt „default.webm“ zurück, wenn keine übereinstimmenden Zeilen vorhanden sind.
In Ihrem speziellen Fall jedoch, wenn Sie nur eine einzelne Zeile abrufen können Sie eine Aggregatfunktion nutzen, um einen Nullwert sicherzustellen, falls keine übereinstimmenden Zeilen vorhanden sind:
<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>
Die Verwendung von MIN() stellt sicher, dass ein Nullwert zurückgegeben wird, wenn keine Datensätze ausgewählt sind. Anschließend ersetzt IFNULL() den Nullwert durch den Standardwert und stellt so sicher, dass Ihre Abfrage immer ein nicht leeres Ergebnis zurückgibt.
Das obige ist der detaillierte Inhalt vonWie kann bei der Verwendung von Joins ein Standardwert für fehlende SQL-Zeilen zurückgegeben werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!