Mysql: использовать order by и ограничивать отдельные запросы при использовании union all
Я знаю, что синтаксис MySql не позволяет нам делать то, что я ищу, но я прошу обходной путь для моей проблемы.
Я хочу выполнить несколько запросов и использовать объединение, чтобы отобразить полный набор данных, используя order by и limit для каждого запроса. Я использовал фальшивые параметры и имена таблиц из-за юридических проблем.
select
x,
y,
z
from tbl1
where z = 'xxxx'
and y = 111
and x = 'text'
order by rand()
limit 11966
union all
select
x,
y,
z
from tbl1
where z = 'xxxx'
and y = 222
and x = 'text'
order by rand()
limit 3560
union all
select
.
.
.
.
.
Кто-нибудь знает обходной путь к этому?
1 ответ
Решение
Используйте скобки:
(select ... order by ... limit ...)
union all
(select ... order by ... limit ...)
union all
(select ... order by ... limit ...)
union all
...