是否查詢:.where('IN(?)',array)總是按順序返回記錄嗎?
company_ids = [2,6,15,1,3]
@people = Person.where("company_id IN (?)", company_ids)
總是回報@people
由company_ids
數組排序?
如果不是,那會是增加最佳實踐的.order()
像:
c_ids = company_ids.collect{|c_id| "company_id = #{c_id}"}
@people = Person.where("company_id IN (?)", company_ids).order(c_ids.join(','))
如果沒有指定排序明確,那麼它不能保證。 – 2014-09-24 16:04:13
@SergioTulentsev我試圖避免做不必要的排序性能開銷。謝謝你的評論。 – sscirrus 2014-09-24 16:05:17
如果您按順序排列了記錄,那麼您最好對它們進行排序。或者在生產中斷時半夜醒來。 :) – 2014-09-24 16:06:43