我最近在一次采访中被问到这个问题.

推荐答案

实际上什么都没有,除非您在表中指定一个字段,或者在parantesse中指定一个表达式,而不是常量或*

让我给你一个详细的回答.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 UPDATE 锁会因为连续的 SHARE 锁而饿死吗?

用两个新列制作表格,按偶数或奇数对另一列进行分类,并将一个类别中的所有偶数和奇数相加

Golang Gorm 没有创建带有约束的表

按长度过滤 varbinary 字段

mysql - 如何加入表中的动态列

估计行数 SQL

MySQL按连续值和计数分组

如何解决“错误:MySQL 意外关闭”?

将 MySQL 中的 JSON 数组转换为行

加载 MySQLdb 模块时出错“您安装了 mysqlclient 还是 MySQL-python?”

MySql.Data.MySqlClient.MySqlException:“主机 localhost 不支持 SSL 连接.”

如何找到 MySQL 进程列表并杀死这些进程?

org.hibernate.InstantiationException:没有实体的默认构造函数::principal.Cliente

MySQL 错误: '访问被拒绝用户'root'@'localhost'

NodeJS/mySQL - ER_ACCESS_DENIED_ERROR 用户'root'@'localhost'的访问被拒绝(使用密码:是)

Spring Boot JPA 使用 Hibernate 在 TABLE 中插入大写名称

#1055 - SELECT 列表的表达式不在 GROUP BY 子句中,并且包含非聚合列,这与 sql_mode=only_full_group_by 不兼容

的表存储引擎在按查询排序时没有此选项(错误 1031)