count(1)或括號中是其它數(shù)字、字段名唾戚,表示只選擇該字段(或數(shù)字)進(jìn)行查詢柳洋,而count()表示選擇所有的字段進(jìn)行查詢。所以結(jié)果是count()的查詢效率比count(1)低叹坦,根據(jù)表的結(jié)構(gòu)而定熊镣,一張很大的表,效率可能會低很多募书。所以绪囱,我個人的建議是,需要出現(xiàn)count的地方莹捡,都不要用count(*)鬼吵,這是跟服務(wù)器過不去。
count()往往跟group by結(jié)合篮赢,進(jìn)行分類匯總齿椅。看看下面這個例子:
mysql> select t_password,count(1) from test1 group by t_password;
+----------------------------------+----------+
| t_password | count(1) |
+----------------------------------+----------+
| 0123456789012345678911 | 1 |
| 12345678901234567890123456789012 | 2 |
+----------------------------------+----------+
2 rows in set (0.05 sec)
這個查詢結(jié)果的含義是启泣,數(shù)據(jù)庫中t_password這個字段涣脚,一共有兩值。值為“0123456789012345678911”的記錄有1條寥茫,值為“12345678901234567890123456789012”的記錄有2條遣蚀。