select count(1)和count(*)和count(列名)
时间: 2024-05-27 17:14:24 浏览: 229
Select count(*)、Count(1)和Count(列)的区别及执行方式
5星 · 资源好评率100%
select count(1)、count(*)、count(列名)都是用来统计记录数的函数,但它们有些许不同:
1. count(1):统计表中所有记录数,因为count(1)表示的是统计1的个数,而1是常量,所以不管表中有多少行数据,执行count(1)都是返回结果1。
2. count(*):统计表中所有记录数,和count(1)一样,都会返回表中所有记录数,但是count(*)比count(1)更快,因为count(*)不关心列是否为null,而count(1)需要判断列值是否为null。
3. count(列名):统计指定列的非空记录数,只统计指定列的非空记录数,数值上等于count(*)-count(该列为空的记录数)。
在实际使用中,count(*)的使用更为普遍,因为除非你需要特别指定某个列的非空记录数,否则count(*)可以直接统计所有记录数,而且效率更高。
阅读全文