можно заказать, следуя этому союзу выбрать? - PullRequest
0 голосов
/ 06 марта 2012

возможно ли в запросе SQL добавить UNION после order by 1

SELECT * FROM table1 WHERE etc='1' ORDER BY 11;

можем ли мы добавить запрос выбора объединения рядом с 11, чтобы он был таким?

SELECT * FROM table1 WHERE etc='1' ORDER BY 11 UNION select etc etc etc ...;

Ответы [ 4 ]

2 голосов
/ 06 марта 2012

В MySQL вы можете заключить заказ по выражению в подзапрос и объединить результаты нескольких подзапросов;как то так:

SELECT * FROM (SELECT * FROM table1 WHERE etc='1' ORDER BY 11) sq1
UNION ALL
SELECT * FROM (SELECT * FROM table2 WHERE etc='2' ORDER BY 12) sq2
...
1 голос
/ 06 марта 2012

Может быть, что-то вроде этого:

SELECT 
    *,
    11 AS orderby 
FROM 
    table1 
WHERE 
    etc='1' 
UNION 
select
    *,
    10 AS orderby 
FROM
    table2
ORDER BY
    orderby
0 голосов
/ 06 марта 2012

Вы можете использовать ORDER BY только в конце запроса после последнего union. В основном все SELECT с выполняются сначала, затем упорядочивается весь набор результатов.

0 голосов
/ 06 марта 2012

Вы можете использовать так:

SELECT * FROM table1 WHERE etc='1' 
union 
SELECT * FROM table1 WHERE etc='1' 
ORDER BY any_column
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...