我应使用 COUNT(*) 来获得 MySQL 中的所有记录吗?
当需要获得一个类似列 non null 的所有值时 ,使用 count(*)。这比使用 count() 方法要快。
使用 count(*) 的语法如下 -
select count(*) as anyVariableName from yourTableName;
为了理解上述概念,我们首先创建一个表格。创建表格的查询如下 -
mysql> create table CountingDemo -> ( -> BookId int -> ); Query OK, 0 rows affected (0.60 sec)
使用 insert 命令向表格中插入一些记录。查询如下 -
mysql> insert into CountingDemo values(100); Query OK, 1 row affected (0.13 sec) mysql> insert into CountingDemo values(); Query OK, 1 row affected (0.17 sec) mysql> insert into CountingDemo values(200); Query OK, 1 row affected (0.12 sec) mysql> insert into CountingDemo values(300); Query OK, 1 row affected (0.16 sec) mysql> insert into CountingDemo values(); Query OK, 1 row affected (0.12 sec)
使用 select 语句显示表格中的所有记录。查询如下 -
mysql> select *from CountingDemo;
输出
+--------+ | BookId | +--------+ | 100 | | NULL | | 200 | | 300 | | NULL | +--------+ 5 rows in set (0.00 sec)
假设你的列没有 null 值,那么 count(*) 和 count() 会得到相同的结果。
但在我们的示例中,BookId 列有一些 null 值。在这种情况下,count(*) 和 count() 会得到不同的结果。
这里使用 count(*) 的查询 -
mysql> select count(*) as AllValue from CountingDemo;
输出
+----------+ | AllValue | +----------+ | 5 | +----------+ 1 row in set (0.00 sec)
这里使用 count() 的查询,它不会将 null 值算在内,因此会得到另一个结果。查询如下 -
mysql> select count(BookId) as AllvalueWhichisNotnull from CountingDemo;
输出
+------------------------+ | AllvalueWhichisNotnull | +------------------------+ | 3 | +------------------------+ 1 row in set (0.00 sec)
广告