UNION DISTINCT with LIMITs

时间:2016-01-03 11:57:31

标签: mysql

有人可以解释一下这个查询是如何被服务器解释的吗?

(select * from mytable where <some condition> LIMIT 13)
UNION DISTINCT
(select * from mytable where <some other condition> LIMIT 103)
UNION DISTINCT
(select * from mytable where <some other condition> LIMIT 71) LIMIT 43;

当我尝试它时,它返回了我43行。当我删除最后LIMIT 43时,它返回了71行。

这是否意味着MySQL仅考虑最后指定的LIMIT并保持UNION来自每个DISTINCT 的所有SELECT行,直至那个LIMIT?或者它是如何运作的?

1 个答案:

答案 0 :(得分:0)

p%也涵盖了p0%和p0%的所有来自p00%的所有来源。所以查询对我来说真的没有意义。

我猜p0%LIMIT 103返回少于71行,因此你得到71行。