2017-02-09 15 views
0

私は簡単な質問があります。 私は複数のクエリに参加しなければならず、そのほとんどは広告INのclausoleを持っています。 残念ながら、MySQLはUNION(すべての組合の外でのみ)でORDER BYを許可していませんが、私は外部の注文では取得できない特定の注文が必要です。Mysql - IN Clausoleで注文する

質問は: Iしている場合等にはclausole

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

私はMySQLのエンジンは、次にIN位置(FOOの=「NEWYORK」を有するように、最初にすべての行によって得られた行を発注すると仮定することができます 'ボストン」等...

感謝。

答えて

2

いいえそれは何も似ていません。あなたが明示的にORDER BY句を追加する必要があります。

ヨーヨーの場合あなたの行をセット内の位置に基づいて注文したい場合は、fieldの機能を使用することができます。

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

ありがとうございます。不幸なことにフィールドでの注文はUnionでは使えませんが、良い解決策です。私は、プログラムコードの外側でクエリをマージします。 – MrMime

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

これを試してみてください。