3

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

更新:

这也是一种工作:

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

只是想知道是否有效。如果它在 MySQLPostgres 中工作...

4

2 回答 2

8

使用 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)

使用 postgres:

Participants.limit(1).order("MAX(CHAR_LENGTH(name)) desc").group("id").pluck(:name)
于 2013-09-18T17:52:58.520 回答
7

这也是一种工作:

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

只是想知道是否有效。如果它在 MySQLPostgres 中工作...

于 2013-09-18T18:09:41.820 回答