是否有所作为,如果你这样做count(*)VS count(column-name)在这两个例子?
我倾向于总是写作,count(*)因为它似乎更符合我的想法,它是一个集合函数,如果这是有道理的.
但我不确定它是否在技术上最好,因为我倾向于看到没有*经常写的示例代码.
计数(*):
select customerid, count(*), sum(price)
from items_ordered
group by customerid
having count(*) > 1;
Run Code Online (Sandbox Code Playgroud)
与count(列名):
SELECT customerid, count(customerid), sum(price)
FROM items_ordered
GROUP BY customerid
HAVING count(customerid) > 1;
Run Code Online (Sandbox Code Playgroud)
gbn*_*gbn 135
COUNT(*) 统计所有行COUNT(column) 仅计算非NULLCOUNT(1)是COUNT(*)因为1是非空表达式您在使用COUNT(*)或COUNT(column)应根据所需的输出只.
nic*_*ckf 33
这适用于MySQL.我不确定其他人.
不同之处是:
COUNT(*) 将计算记录数. COUNT(column_name) 将计算column_name不为null的记录数.因此COUNT(*),你应该使用.如果您正在使用MyISAM并且没有WHERE子句,那么优化器甚至不必查看该表,因为已经缓存了行数.
Dea*_*ing 19
当它是一个标识符(并保证是非标识符NULL)时,它可能无关紧要.
但是,有是之间的差异COUNT(*),并COUNT(column)在一般情况下,这COUNT(column)将返回非计数NULL列中的值.还有COUNT(DISTINCT column)变量返回唯一的非NULL值的数量.
通常它是相同的,但在细节上AFAIK "count(*)"是更好的 b/c"count(columnname)"强制DB执行更多代码来查找该列名称(但不是必需的).
| 归档时间: |
|
| 查看次数: |
82559 次 |
| 最近记录: |