Heim  >  Artikel  >  Datenbank  >  Wie kann bei der Verwendung von Joins ein Standardwert für fehlende SQL-Zeilen zurückgegeben werden?

Wie kann bei der Verwendung von Joins ein Standardwert für fehlende SQL-Zeilen zurückgegeben werden?

DDD
DDDOriginal
2024-11-01 12:23:30584Durchsuche

How to Return a Default Value for Absent SQL Rows When Using Joins?

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!

Stellungnahme:
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