ruby on rails中的排序是如何工作的?当在一个查询中有多个字段要排序时



我有一个模型,在我的产品表中有price、min_price、max_price和discount字段。如果我想执行升序-降序,当我们在多个字段上申请订单时,将如何执行。例如如下。

@products = Product.order("price asc").order("min_price desc").order("max_price asc").order("updated_at asc") (Query might be wrong but for reference im adding)

它会按照订单顺序订购吗?

如果将.to_sql附加到它,它将显示生成的SQL,以便您自己进行调查。

我尝试了一个类似的查询:

Book.select(:id).order("id asc").order("pub_date desc").to_sql
=> "SELECT "books"."id" FROM "books" ORDER BY id asc, pub_date desc"

你可以改为:

Book.select(:id).order(id: :asc, pub_date: :desc).to_sql
=> "SELECT "books"."id" FROM "books" ORDER BY "books"."id" ASC, "books"."pub_date" DESC"

您看到的添加了表名,因此当您访问多个表时更可靠

最新更新