我有以下数组(例如):
array = [234,675,11,233,99]
我比运行以下 ActiveRecord 查询:
User.where(id: array)
返回的数组将随机排序。
但是,我希望返回的结果基于原始数组的顺序(即 id=234 是第一个,id=99 是最后一个)。
我可以在数组上循环并触发 5 个单独的查询,有更好的方法吗?
我有以下数组(例如):
array = [234,675,11,233,99]
我比运行以下 ActiveRecord 查询:
User.where(id: array)
返回的数组将随机排序。
但是,我希望返回的结果基于原始数组的顺序(即 id=234 是第一个,id=99 是最后一个)。
我可以在数组上循环并触发 5 个单独的查询,有更好的方法吗?
复制:
ActiveRecord.find(array_of_ids),保留顺序
所以基本上代码应该是:
User.find(ids).order("field(id, #{ids.join(',')})")