2017-02-09 44 views
0

我有一個簡單的問題。 我必須加入多個查詢,其中大部分都有廣告IN clausole。 不幸的是,MySQL不允許在UNION中使用ORDER BY(只在所有的union之外),但我需要一個特定的命令,我不能通過外部命令獲得。Mysql - 在IN中排序Clausole

的問題是: 如果我有一個在clausole像

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

我可以假設MySQL的引擎將命令由位置(所以,首先是與富=「紐約」行生成的行那麼「波士頓」等......

感謝。

回答

2

不行,這一點也不像。你需要通過條款明確添加的命令。

如果喲你想根據一個集合中的位置來排序你的行,你可以使用field函數。

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

謝謝。不幸地,現場秩序在聯盟內部不可用,但是是一個很好的解決方案。我將在程序代碼中合併外部查詢。 – MrMime

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

試試這個。