因為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;