我正在尋找使用IN查詢記錄喜歡這樣:Rails的Postgres的訂單通過定製
Event.where("events.id IN (#{events.nil? ? '' : events.collect(&:id).join(',')})")
將會產生類似的輸出:
SELECT "events".* FROM "events" WHERE (events.id IN (143,169,139,48,172,146,145,124,111,49,108,18,113,144)) AND (status = 'live') LIMIT 10
然而,這隨後被update_at排序默認。我希望它通過查詢的IN部分排序。我的意思是,我希望這是它返回的訂單:
143,169,139,48,172,146,145,124,111,49,108,18,113,144
這可能嗎?
我還必須注意,我不能在表中添加優先級列或類似的事件,因爲「events」部分將被動態生成。
我剛剛發現了一個非常類似的問題在這裏:
Postgres ORDER BY values in IN list using Rails Active Record
隨意紀念我這一個作爲複製
此問題已在此處顯示:http://stackoverflow.com/questions/866465/sql-order-by-the-in-value-list – Jef
使用'.order(「events.id asc」)'到底。 – MurifoX
啊......我沒有看到這個評論。然後標記爲重複... – bonCodigo