gpt4 book ai didi

mysql - 如何在 'Order' 子句中编写多个查询并在 Rails 中定义限制

转载 作者:行者123 更新时间:2023-11-29 11:54:44 24 4
gpt4 key购买 nike

我有一个模型“产品”。我的要求是获取所有产品的列表,但前 20 个产品应按 created_at 的顺序排列,其余所有产品应按 updated_at 的顺序排列。

现在我的查询是 Product.order('created_at DESC,updated_at DESC'),但这会按 created_at 的顺序提供所有产品。

我考虑过在 order 子句中使用 limit 子句。关于如何实现这一目标有什么建议吗?

最佳答案

我会这样做:

top_ten_products = Product.order(:created_at).limit(10)
next_ten_products = Product.where.not(id: top_ten_products).order(:updated_at).limit(10)
products = top_ten_products + next_ten_products
  • top_ten_products 正在获取前 10 个产品,按created_at 升序排列。
  • next_ten_products 正在获取前 10 个产品,按 update_at 升序排序,并排除 top_ten_products。
  • products 是两个数组的并集

关于mysql - 如何在 'Order' 子句中编写多个查询并在 Rails 中定义限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33409031/

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