Heim > Datenbank > MySQL-Tutorial > Wie kann ein Standardwert zurückgegeben werden, wenn eine SQL-Abfrage keine Zeilen zurückgibt?

Wie kann ein Standardwert zurückgegeben werden, wenn eine SQL-Abfrage keine Zeilen zurückgibt?

Patricia Arquette
Freigeben: 2024-10-29 08:52:30
Original
981 Leute haben es durchsucht

How to Return a Default Value When a SQL Query Returns No Rows?

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

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

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

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!

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