是否查询:.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