gpt4 book ai didi

mysql - 为什么 2 个使用联合限制的语句不获取所有记录?

转载 作者:行者123 更新时间:2023-11-29 06:19:18 24 4
gpt4 key购买 nike

我有 2 个带有限制和联合的语句,但是当我运行该语句时,我只得到定义为最高限制的结果数。我以为我会从陈述 1 得到 X 结果,再加上从陈述 2 得到 Y 结果。这并没有发生。这是为什么?

查询示例如下:

SELECT * FROM tableA WHERE X > 100 LIMIT 2
UNION
SELECT * FROM tableA WHERE X < 100 LIMIT 3;

上面的查询返回 3 个结果。然而,在这个简单的示例中,我想要 2 个结果 + 3 个结果(总共 5 个结果)。

如果我像这样修改查询,我得到了 5 个结果,但下面的查询似乎具有误导性:

SELECT * FROM tableA WHERE X > 100 LIMIT 2
UNION
SELECT * FROM tableA WHERE X < 100 LIMIT 5;

我发现通过将每个语句包装在另一个语句中可以解决这个问题。以下是最终声明的显示方式:

SELECT * FROM(
SELECT * FROM tableA WHERE X > 100 LIMIT 2
)query1
UNION
SELECT * FROM(
SELECT * FROM tableA WHERE X < 100 LIMIT 3
)query2;

感谢任何可以解释为什么最初两个语句的行为的人。

最佳答案

除非使用括号,否则最后的 ORDER BY和/或 LIMIT子句作为一个整体应用于联合“外部/之后”的查询。

http://dev.mysql.com/doc/refman/5.7/en/union.html

关于mysql - 为什么 2 个使用联合限制的语句不获取所有记录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34185832/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com