gpt4 book ai didi

ruby-on-rails - 按 id 数组获取元素并按此数组排序

转载 作者:行者123 更新时间:2023-12-04 03:36:22 25 4
gpt4 key购买 nike

例如,我想要通过 id 数组获取产品,但我希望这些产品与 id 数组的顺序相同。

例如,我想要 id 为 6、3、8 的产品:

ids = [6, 3, 8]
Product.where(id: ids)

它给了我产品,但第一个是 id = 3 的产品,第二个是 id = 6 的产品...

我希望这些产品与 ids 数组的顺序相同。我想要 id = 6 的第一个产品,id = 3 的第二个产品...

我怎样才能在产品查询中做到这一点?

最佳答案

索引应该工作:

Product.where(id: ids).index_by(&:id).values_at(*ids)

或者只是(在 MySQL 中检查,但如果 ID 来自外部来源,则在 ids 之前清理):

Product.where(id: ids).order("field(id, #{ids.join(', ')})")

关于ruby-on-rails - 按 id 数组获取元素并按此数组排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47326634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com