count(*)和count(column_name),区别是什么?
COUNT() 计算结果集中的所有行(如果使用GROUP BY,则为组)。 COUNT(column_name)只计算column_name不为空的那些行。即使没有NULL值,在某些情况下这也会变慢,因为必须检查该值(除非该列不可为空)。 COUNT(1)与COUNT()1 相同,因为1永远不能为NULL。 要查看结果的差异,您可以尝试以下小实验:
CREATE TABLE table1 (x INT NULL); INSERT INTO table1 (x) VALUES (1), (2), (NULL); SELECT COUNT(*) AS a, COUNT(x) AS b, COUNT(1) AS c FROM table1; 结果:
abc 3 2 3来源:stack overflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。