gpt4 book ai didi

activerecord - 在 ActiveRecord 中找到 5 个最长的名字

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

假设我有一个包含数千篇文章的文章表。我试图找出最有效的方法来查找 5 个最长的文章名称,而不是文章本身。

这是我目前所拥有的:

def self.five_longest_article_names
limit(5).order("(LENGTH(name)) desc").pluck(:name)
end

但是那使用了 SQL。是否有我可以执行的 ActiveRecord 查询?

最佳答案

YourModel.limit(5).order("CHAR_LENGTH(name) desc").pluck(:name)

因此,您的方法变为:

def self.five_longest_article_names
limit(5).order("CHAR_LENGTH(name) desc").pluck(:name)
end

您绝对可以使用 Arel,但是 Arel 非常适合复杂的查询。对于您的情况,这是一个简单的用例,我认为在这种特殊情况下使用 SQL 会更好。

关于activerecord - 在 ActiveRecord 中找到 5 个最长的名字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32381221/

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