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(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些
Select Count (*),Select Count(1),Select Count(column)的区别
猜你喜欢
转载自pxx199248.iteye.com/blog/1766390
今日推荐
周排行