*`COUNT()` immer ein garantiertes Ergebnis, auch wenn es keine Übereinstimmung gibt? **
Es ist wichtig, das Verhalten von COUNT(*)
zu verstehen, wenn Abfragen wie die folgenden verwendet werden:
<code class="language-sql">SELECT COUNT(*) as num FROM table WHERE x = 'y'</code>
Erklärung der Abfrage
Diese Abfrage zählt die Anzahl der Zeilen in der Tabelle table
, in der die Spalte x
gleich y
ist.
*Antwort: Ja, „COUNT()“ gibt immer ein Ergebnis zurück**
Im Gegensatz zu anderen Aggregatfunktionen wie MAX, SUM oder MIN, die einen NULL-Wert zurückgeben, wenn kein Datensatz die Bedingung erfüllt, gibt COUNT(*)
immer ein Ergebnis zurück.
*Ursache: `COUNT()` zählt NULL-Werte**
Der Grund für dieses Verhalten ist, dass COUNT(*)
alle Zeilen in der Tabelle auswertet, einschließlich Zeilen mit NULL-Werten. Daher gibt COUNT(*)
immer 0 zurück, auch wenn keine Zeile der Bedingung in der WHERE-Klausel entspricht.
Zusätzliche Hinweise:
COUNT(*)
anstelle von COUNT()
, um sicherzustellen, dass NULL-Werte berechnet werden. COUNT(*)
null Zeilen zurückgibt, wenn keine übereinstimmenden Gruppen vorhanden sind. Ausnahmen
Es gibt seltene Ausnahmen von dieser Regel, zum Beispiel:
Das obige ist der detaillierte Inhalt vonGibt „COUNT(*)' immer einen Wert zurück, auch wenn keine Übereinstimmungen vorliegen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!