*`COUNT()` 是否始終保證結果,即使沒有匹配項? **
在使用如下所示的查詢時,理解 COUNT(*)
的行為非常重要:
<code class="language-sql">SELECT COUNT(*) as num FROM table WHERE x = 'y'</code>
查詢解釋
此查詢計算 table
表中 x
欄位等於 y
的行數。
*答案:是的,`COUNT()` 總是回傳結果**
與其他聚合函數(如 MAX、SUM 或 MIN)不同,當沒有記錄符合條件時,這些函數會傳回 NULL 值,而 COUNT(*)
總是會傳回結果。
*原因:`COUNT()` 計數 NULL 值**
這種行為的原因是 COUNT(*)
計算表中的所有行,包括具有 NULL 值的行。因此,即使沒有行符合 WHERE 子句中的條件,COUNT(*)
也始終傳回 0。
附加說明:
COUNT(*)
而不是 COUNT()
來確保計算 NULL 值。 COUNT(*)
傳回零行。 例外情況
此規則很少有例外情況,例如:
以上是即使符合為零,'COUNT(*)”也總是回傳一個值嗎?的詳細內容。更多資訊請關注PHP中文網其他相關文章!