可以通过跟随它联合选择吗?

时间:2012-03-06 09:38:13

标签: mysql sql

在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 个答案:

答案 0 :(得分:2)

在MySQL中,您可以在子查询中包含order by子句,并将多个子查询的结果合并在一起;像这样的东西:

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 :(得分:1)

也许是这样的:

SELECT 
    *,
    11 AS orderby 
FROM 
    table1 
WHERE 
    etc='1' 
UNION 
select
    *,
    10 AS orderby 
FROM
    table2
ORDER BY
    orderby

答案 2 :(得分:0)

您可以这样使用:

SELECT * FROM table1 WHERE etc='1' 
union 
SELECT * FROM table1 WHERE etc='1' 
ORDER BY any_column

答案 3 :(得分:0)

您只能在最后ORDER BY之后的查询末尾使用union。基本上所有SELECT都先完成,然后整个结果集被排序。