mysql - SQL 返回始终为假条件的结果

标签 mysql sql sqlite

我对为什么下面的 SQL 语句返回一行感到困惑:

#MySQL
select max(1) from dual where 0 = 1

#SQLite
select max(1) where 0 = 1 

我对这个结果真的很困惑。任何人都可以阐明这种行为吗?

提前致谢!

最佳答案

max 这样没有 group by 的聚合总是返回一行。如果底层行集为空,它将返回一个带有 null 的行。否则,它返回您指定的列的最大值。

where 子句影响计算最大值的行。它不会改变查询必须返回最大值的事实。

关于mysql - SQL 返回始终为假条件的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306191/

相关文章:

mysql - 如何进行 SELECT 1 FROM

php - SQL 在 phpMyAdmin 中有效,但在 php 中无效

java - 如何使用MySQL通过preparedStatement将数据从一张表复制到另一张表?

C# 行中每一列的 KeyValue

mysql - 更改 SQL 数据库中的 bool 值

mysql - 索引 MySQL 列可以改进 LIKE 搜索吗?

sql - MS SQL - CASE 与 IF 性能

java - 如何在 Android 中自定义适配器?

iphone - SQLite 异常 : SQLite Busy

ios - 从 SQLite 数据库中删除行