select count(*)和select count(fieldName)之间的差异

时间:2012-03-21 09:45:40

标签: mysql sql-execution-plan

  

可能重复:
  In SQL, what's the difference between count(column) and count(*)?

根据主题,MySQL如何解释上述查询有什么不同?或者他们被认为是一样的?

3 个答案:

答案 0 :(得分:3)

函数COUNT(*)COUNT(fieldname)之间的区别在于第二个函数不计算NULL值。

答案 1 :(得分:1)

SELECT *...返回所选表格中的所有字段。 SELECT fieldname仅返回指定的字段名称。

使用第二个选项更有效,特别是在表有许多字段且其中一些没有索引的情况下。从中选择将需要更长时间,如果您不需要,则选择所有内容是没有意义的。

答案 2 :(得分:0)

select(*)表示您要选择表中可用的所有字段。 select(fieldname)表示您只想选择表中的某些列。

例如,您有一个表'用户',其中包含'username','email','password'列;你可以做到以下几点:

select (*) from Users

将为您提供所有3列(用户名,电子邮件,密码);或者你可以这样做:

select username, email from Users

只会给你2列(用户名,电子邮件)。