Mysql - 在IN Clausole订购

时间:2017-02-09 09:46:41

标签: php mysql

我有一个简单的问题。 我必须加入多个查询,其中大多数都有广告IN clausole。 不幸的是,MySQL不允许在UNION中使用ORDER BY(仅在所有联盟之外),但我需要一个特定的顺序,我无法通过外部订单获得。

问题是: 如果我有像这样的IN clausole

foo in ('newyork','boston','atlanta')

我可以假设MySql的引擎会将结果行按IN位置排序(所以,首先是foo ='newyork'然后'boston'等所有行...

感谢。

2 个答案:

答案 0 :(得分:2)

没有。这不是那样的。您需要显式添加order by子句。

如果您想根据集合中的位置订购行,可以使用field函数。

order by field(foo,'newyork','boston','atlanta')

答案 1 :(得分:1)

Select *
from
(
  Select * from Temp1
  order by x
) Tbl1
UNION
Select *
from
(
  Select * from Temp2
  order by y
) Tbl2

试试这个。