gpt4 book ai didi

mysql - mySQL/SQL 中的 count(0)、count(1).. 和 count(*) 有什么区别?

转载 作者:IT老高 更新时间:2023-10-28 13:00:13 30 4
gpt4 key购买 nike

我最近在一次采访中被问到这个问题。我在 mySQL 中尝试了这个,并得到了相同的结果(最终结果)。All 给出了该特定表中的行数。谁能解释它们之间的主要区别。

最佳答案

没什么,除非您在表格中指定字段或在括号中指定表达式而不是常量值或 *

让我给你一个详细的答案。 Count 将为您提供给定字段的非空记录号。假设您有一个名为 A 的表

select 1 from A
select 0 from A
select * from A

都将返回相同数量的记录,即表 A 中的行数。但输出仍然不同。如果表中有 3 条记录。以 X 和 Y 作为字段名

select 1 from A will give you

1
1
1

select 0 from A will give you
0
0
0

select * from A will give you ( assume two columns X and Y is in the table )
X Y
-- --
value1 value1
value2 (null)
value3 (null)

因此,所有三个查询都返回相同的数字。除非你使用

select count(Y) from A 

因为只有一个非空值,你会得到 1 作为输出

关于mysql - mySQL/SQL 中的 count(0)、count(1).. 和 count(*) 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18291036/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com