Standardwerte mit SQL zurückgeben, wenn einzelne Zeilen nicht gefunden werden
Beim Abrufen von Daten aus einer Datenbank mithilfe einer SQL-Abfrage ist es häufig wünschenswert, dies zu tun Gibt einen Standardwert zurück, wenn keine passende Zeile gefunden wird. Dies ist besonders nützlich, wenn es um Situationen geht, in denen die Abfrageausgabe für die Anzeige oder Verarbeitung in Anwendungen vorgesehen ist.
Ursprüngliche Abfrage
Betrachten Sie die folgende SQL-Abfrage, die darauf abzielt Rufen Sie das nächste geplante Element für einen Stream ab:
<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 gibt das zuletzt geplante Element zurück, das die angegebenen Kriterien erfüllt. Wenn jedoch keine passende Zeile gefunden wird (d. h. innerhalb der letzten 30 Minuten keine geplanten Elemente vorhanden sind), wird ein leeres Ergebnis zurückgegeben.
Standardwertansätze
Um dieses Szenario zu bewältigen und einen Standardwert zurückzugeben, wenn keine passende Zeile gefunden wird, können mehrere Ansätze verwendet werden:
COALESCE/IFNULL mit Aggregation
Eine Methode beinhaltet die Verwendung von COALESCE- oder IFNULL-Funktionen in Verbindung mit einer Aggregatfunktion. Dieser Ansatz stellt sicher, dass ein Wert ungleich Null zurückgegeben wird, auch wenn das Abfrageergebnis leer ist. Beispiel:
<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>
In dieser Abfrage wird die Aggregatfunktion MIN() verwendet, um den Mindestwert für die Dateispalte zurückzugeben. Dadurch wird sichergestellt, dass ein NULL-Wert zurückgegeben wird, wenn keine Zeilen ausgewählt sind. Die Funktion IFNULL oder COALESCE ersetzt dann den NULL-Wert durch den Standardwert „default.webm“.
Diese Lösung gibt effektiv den Standardwert zurück, wenn keine passende Zeile gefunden wird, sodass die Anwendung das Fehlen geplanter Elemente verarbeiten kann angemessen.
Das obige ist der detaillierte Inhalt vonWie kann ich in SQL Standardwerte zurückgeben, wenn keine passenden Zeilen gefunden werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!