count(*) 可以统计所有的行数,包括为null的行
count(1) 统计的是第一个子字段的行数,为null的行数 不统计。
sql 语句中 有时候1 代表对应的 第一个字段,第二个字段 一次类推。
COUNT是计算行数的函数,COUNT(*)可以计算出行数,COUNT(1)也可以计算出行数,1在这里代表一行。
例如:SELECT 1 FROM TABLENAME 会显示出VALUE为1的列。
你建一个表,插入两行记录,一行为1,一行为空,然后你去看看 count(*) 和 count(1) 发现结果不一样,就知道意思了
聚合函数的参数在不同的函数中代表的意义是不同的:
max(1)中 1:表示为订制1;
sum(1)中 1:表示为行数;
count(1)中 1:表示为所有行,在这里的所有数字都可以看作 * ;
1是查一条字段,而*是表里所有的字段!这两个概念是不一样的!