Heim > Datenbank > MySQL-Tutorial > Wie kann ich in SQL Standardwerte zurückgeben, wenn keine passenden Zeilen gefunden werden?

Wie kann ich in SQL Standardwerte zurückgeben, wenn keine passenden Zeilen gefunden werden?

Mary-Kate Olsen
Freigeben: 2024-10-29 18:54:30
Original
1020 Leute haben es durchsucht

How to Return Default Values in SQL When No Matching Rows are Found?

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage