count(*)和count(1)区别?
学习是最好的投资!
以下sql可以看到你的sql會被mysql轉譯成怎樣
EXPLAIN EXTENDED SELECT count(*) FROM `table`; SHOW WARNINGS;
我的版本是mysql 5.6.26,以下是轉譯後的結果:
/* select#1 */ select count(0) AS `count(*)` from `test`.`table`
所以,在我看來,較新版本的mysql已經沒這方面的區別了,不過習慣上我還是使用count(1)。
在資料記錄都不為空的時候查詢出來結果上沒有差別的. 但當COUNT(1)查詢的那列有空的時候空的是要被去掉的不記入統計中.這樣查詢出來的結果是不一樣的.
以下sql可以看到你的sql會被mysql轉譯成怎樣
我的版本是mysql 5.6.26,以下是轉譯後的結果:
所以,在我看來,較新版本的mysql已經沒這方面的區別了,不過習慣上我還是使用count(1)。
在資料記錄都不為空的時候查詢出來結果上沒有差別的. 但當COUNT(1)查詢的那列有空的時候空的是要被去掉的不記入統計中.這樣查詢出來的結果是不一樣的.