我对为什么下面的 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/