我有以下数组(例如):
array = [234,675,11,233,99]
我然后运行类似以下 ActiveRecord 查询的内容:
User.where(id: array)
返回的数组将随机排序。
但是,我希望返回的结果基于原始数组的顺序(即 id=234 为第一个,id=99 为最后一个)。
我可以在数组上循环并触发 5 个单独的查询,有更好的方法吗?
最佳答案
重复:
ActiveRecord.find(array_of_ids), preserving order
所以基本上代码应该是:
User.find(ids).order("field(id, #{ids.join(',')})")
关于mysql - 对从 ActiveRecord 返回的结果强制排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15053062/