2009-05-20 5 views
-2

は、私は次のクエリために、文と同じ順序によって、クエリの結果

SELECT * FROM campaigns where campaign_id IN ('idStrOne', 'idStrTwo', 'idStrThree'); 

に「ID」であるテーブルキャンペーンの主キーによって順序付けされているかの結果を持っています。これは私が望む順序ではありません。

結果がIN関数の引数と同じ順序で戻ってくるようにしたい。だからこの場合、私が望む注文は

idStrOne, idStrTwo, idStrThree 

どのように私はこの注文を得るのですか?

答えて

2

あなたが

SELECT * 
FROM campaigns 
WHERE campaign_id IN ('idStrOne', 'idStrTwo', 'idStrThree') 
ORDER BY 
(CASE campaign_id WHEN 'idStrOne' THEN 1 WHEN 'idStrTwo' THEN 2 ELSE 3 END); 
+0

1が順にcase文を愛するORDER BY句でCASE式を追加してみてください。そのような貴重なツールを常に使用してください! – northpole

関連する問題