我有一个简单的问题。我必须加入多个查询,其中大多数都有广告。不幸的是,MySQL不允许在联盟中(仅在所有工会之外(进行ORDER BY,但是我需要一个特定的排序,而我无法通过外部订单获得。
问题是:如果我有一个像 IN 幽闭素
foo in ('newyork','boston','atlanta')
我可以假设 MySql 的引擎将按 IN 位置对生成的行进行排序(因此,首先是 foo = 'newyork' 的所有行,然后是 'boston' 等......
谢谢。
No.这完全不是那样的。您需要显式添加顺序依据子句。
如果要根据集合中的位置对行进行排序,可以使用field
函数。
order by field(foo,'newyork','boston','atlanta')
Select *
from
(
Select * from Temp1
order by x
) Tbl1
UNION
Select *
from
(
Select * from Temp2
order by y
) Tbl2
试试这个。