mysql - 具有不同列顺序和不同 WHERE 条件的 SELECT 返回的行数多于总行数
问题描述
如果我有以下 SELECT 语句:
SELECT COUNT(*)
FROM table1
返回表中的 500 行(没有年龄 = NULL 的行)
SELECT first_name, last_name, occupation
FROM table1
WHERE age <= 10
返回表中的 200 行
SELECT occupation, last_name, first_name
FROM table1
WHERE age > 10
返回表中的 320 行
这怎么可能?这些数字是任意选择的,但可能是什么原因?谢谢你的建议。
解决方案
table1 实际上是一个视图,并且在选择时计算年龄值。如果您等待数月直到执行查询 2,那么可能有 20 个人已满 11 岁。
要吸取的教训:永远不要存储年龄,存储出生日期!
推荐阅读
- jakarta-ee - Java EE 应用程序中的 OAuth2 访问令牌
- google-cloud-platform - 错误:服务器没有资源类型“应用程序”
- java - 当我返回活动时,如何重新启动 BarcodeDetector 以获得新结果?
- java - Keytool 认为 cacerts 不存在
- image-processing - 光照不强的环境下根据衣服颜色认人的问题
- database-design - 在行的列之间移动数据?
- python - 简单的for-(函数/操作)
- angular - 一个主要应用程序中的 Angular 多个项目
- angular - 如何从 firebase db 中获取值
- python - 无法通过 Flask 使用 python REST API 从 React 接收数据以更新 Mongo 集合