2009-05-20 55 views
-2

結果我有以下查詢訂單查詢由相同的順序在報表

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

這些都是由表活動是「身份證」的主鍵排序結果。這不是我想要的順序。

我希望結果以與IN函數的參數相同的順序返回。所以在這種情況下,我想要的訂單是

idStrOne, idStrTwo, idStrThree 

如何獲得此訂單?

回答

2

你可以嘗試在順序添加CASE表達式BY子句

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語句。一直使用它,這樣一個有價值的工具! – northpole 2009-05-20 14:05:08