因为union all 是把两个结果集合并到一起,如果在每个结果集后面跟上limit的话 union all不知道到底取哪些结果了 可以在union 之后加上limit
如果您想使用LIMIT子句来对全部UNION结果进行分类或限制,则应对单个地SELECT语句加圆括号,并把ORDER BY或LIMIT放到最后一个的后面:
(SELECT a FROM tbl_name WHERE a=10 AND B=1)
UNION
(SELECT a FROM tbl_name WHERE a=11 AND B=2)
ORDER BY a LIMIT 10;
麻烦一点也可以这么干:
select userid from (
select userid from testa union all select userid from testb) t
order by userid limit 0,1;