`count(1)` 是一種在資料庫查詢中常用的計數方法。它的作用是統計滿足查詢條件的行數,而不考慮這些行中具體哪些列的值。這裡的 "1" 是一個占位符,表示一個固定的值,用於在計算時替換表中的每一行。因此,無論表中有多少列,`count(1)` 的結果總是表示符合查詢條件的行數。
例如,如果表中有1000行數據,其中500行滿足查詢條件,那麼 `count(1)` 的結果就是500。這個結果並不依賴於表中列的具體內容,只關注於查詢條件是否成立。
count(*) 函式則是將星號(*)作為占位符,它會將表中的所有列作為統計的對象,包括那些為空的列。因此,`count(*)` 返回的行數會包括所有列的行數,包括空值。
count(欄位) 函式則是只統計指定欄位的行數,忽略欄位為空的情況。
在某些情況下,使用 `count(1)` 可能會比使用 `count(*)` 快,尤其是在表沒有主鍵或者主鍵作為查詢條件時。但是,如果表中只有一個欄位,使用 `count(8)`(假設欄位名為8)可能會更高效,因為 `count(1)` 內部也需要處理欄位名的解析,而直接使用欄位名可能會避免這部分開銷。