有人可以解释一下这个查询是如何被服务器解释的吗?
(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
?或者它是如何运作的?
答案 0 :(得分:0)
p%也涵盖了p0%和p0%的所有来自p00%的所有来源。所以查询对我来说真的没有意义。
我猜p0%LIMIT 103返回少于71行,因此你得到71行。