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
...
Другие вопросы по тегам