我正在使用mysql。我必须向用户展示以我在值字段中提到的特定方式进行记录。我必须按user_id
而不是主要ID进行订购。我按以下顺序需要对象:[5, 4, 2, 1, 1, 1]
。
我正在使用pluck
来查看特定的列而不是对象。
Project.where('user_id IN (?)', [5,4,2,1]).pluck(:user_id)
#=> [1, 1, 1, 2, 4, 5]
但是上面的查询返回[1, 1, 1, 2, 4, 5]
而不是[5, 4, 2, 1, 1, 1]
。
有人可以帮我解决这个问题吗?
答案 0 :(得分:0)
默认情况下,Rails查询将按记录的ID对记录进行排序。如果要保留顺序作为值字段,请尝试以下代码。
user_ids = [5,4,2,1]
Project.where(user_id: user_ids).order("FIELD(user_id, #{user_ids.join(',')})").pluck(:user_id)