MySQL中count(*)和count(columnName)之间的区别?

无论列是否包含空值,count(*)返回所有行,而count(columnName)返回除空行之外的行数。

让我们首先创建一个表。

以下是查询

mysql> create table ifNotNullDemo

   -> (

   -> Name varchar(20)

   -> );

以下是使用insert命令在表中插入一些记录的查询:

mysql> insert into ifNotNullDemo values('Chris');

mysql> insert into ifNotNullDemo values('');

mysql> insert into ifNotNullDemo values('Robert');

mysql> insert into ifNotNullDemo values(null);

mysql> insert into ifNotNullDemo values(0);

以下是使用select语句显示表中所有记录的查询:

mysql> select *from ifNotNullDemo;

这将产生以下输出

+--------+

| Name   |

+--------+

| Chris  |

|        |

| Robert |

| NULL   |

| 0      |

+--------+

5 rows in set (0.00 sec)

情况1:以下是count(*)的演示,其中的count也包含null:

mysql> select count(*) from ifNotNullDemo;

这将产生以下输出

+----------+

| count(*) |

+----------+

| 5        |

+----------+

1 row in set (0.02 sec)

情况2:以下是对count(columnName)的查询。

mysql> select count(Name) from ifNotNullDemo;

这将产生以下输出

+-------------+

| count(Name) |

+-------------+

| 4           |

+-------------+

1 row in set (0.00 sec)

以上是 MySQL中count(*)和count(columnName)之间的区别? 的全部内容, 来源链接: utcz.com/z/343402.html

回到顶部