最近在一次采访中有人问我这个问题。我在mySQL中尝试过,并得到了相同的结果(最终结果)。全部给出了该特定表中的行数。任何人都可以解释它们之间的主要区别。
除非您在表格中指定字段或在括号内指定表达式,而不是常量值或*,否则什么也没做
让我给您一个详细的答案。计数将为您提供给定字段的非空记录号。假设您有一个名为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作为输出