Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/52.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何使用RubyonRails查找列中最长的字符串?_Ruby On Rails_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby on rails 如何使用RubyonRails查找列中最长的字符串?

Ruby on rails 如何使用RubyonRails查找列中最长的字符串?,ruby-on-rails,ruby,ruby-on-rails-3,Ruby On Rails,Ruby,Ruby On Rails 3,在Ruby中,从列X中查找最长字符串的最有效方法是什么 更新: 这也是一种工作: def self.length_of_longest_number Invoice.order("LENGTH(number) DESC").first.number.length end def self.length_of_longest_number Invoice.order("LENGTH(number) DESC").first.number.length end 只是想知道它是否有效。如果

在Ruby中,从列
X
中查找最长字符串的最有效方法是什么

更新:


这也是一种工作:

def self.length_of_longest_number
  Invoice.order("LENGTH(number) DESC").first.number.length
end
def self.length_of_longest_number
  Invoice.order("LENGTH(number) DESC").first.number.length
end
只是想知道它是否有效。如果它在MySQL和Postgres中工作…

使用MySQL:

# Change your model name and field to your needs
Participant.order("MAX(CHAR_LENGTH(first_name)) desc").limit(1)

# works too:
Participant.order("MAX(CHAR_LENGTH(first_name)) desc").first

# and this is the most efficient to get the field directly:
Participant.limit(1).order("MAX(CHAR_LENGTH(first_name)) desc").pluck(:first_name)
博士后:

Participants.limit(1).order("MAX(CHAR_LENGTH(name)) desc").group("id").pluck(:name)

这也是一种工作:

def self.length_of_longest_number
  Invoice.order("LENGTH(number) DESC").first.number.length
end
def self.length_of_longest_number
  Invoice.order("LENGTH(number) DESC").first.number.length
end

只是想知道它是否有效。如果它在MySQL和Postgres中工作…

那么“列”是指ActiveRecord属性吗?“数字最多的字符串”是整数的字符串表示形式?是的,我这里指的是ActiveRecord属性。这里不涉及数字或整数。我在我原来的帖子里说得更清楚了。你试过什么?您需要提供示例输入和预期输出。你还需要向我们展示你自己已经尝试解决这个问题。好的,说得对。我自己在底部贴了一个答案。感谢反馈。这对mysql和postgresql有效吗?在mysql中有效,在postgres中也应该有效。。但我没有测试它,这很有效!谢谢。我想这比我的尝试要快?是的,因为您正在查询数据库中的所有条目,然后使用ruby获取第一个条目。通过SQL进行排序和限制要快得多。对我来说,在Postgres中,它不适用于错误
PG::error:error:column“participants.name”必须出现在GROUPBY子句中,或用于聚合函数中,但适用于
participants.limit(1).order(“MAX(CHAR_LENGTH(name))desc”).GROUP(“id”).pull(:name)
建议您将此添加到问题中,而不是将其作为答案发布。