Select Count (*),Select Count(1),Select Count(column)的区别

1.Select Count (*),Select Count(1),Select Count(column)的区别

2.各自在什么情形下使用最优




count( * )是计算结果集中所有的行或者group by的结果集;

count(column_name)仅仅计算column_name NOT NULL的行数;需要对column_name进行检查,所以某些情况下及时没有空值,效率也会略低,除非明确指定column_name为not null;

count(1)和count(*)一样,因为1始终不为NULL;

========================================================

count(1),其实就是计算一共有多少符合条件的行。

1并不是表示第一个字段,而是表示一个固定值。

其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.

同理,count(2),也可以,得到的值完全一样,count('x'),count('y')都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。

count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些







猜你喜欢

转载自pxx199248.iteye.com/blog/1766390
今日推荐