2015-04-01 4 views
4

Чтобы найти максимальную длину строки столбца в SQL является:Rails 4 как найти максимальную длину столбца строки

select max(length(<column>)) from <table> 

Может кто-нибудь показать, как сделать то же самое в Rails 4 ActiveRecord или даже squeel?

+0

Для фактического ограничения длины для строкового поля (а не самого длинного значения), проверьте http://stackoverflow.com/questions/1257658/rails-is-there-a-way-to-check-the-fields -datatype – mwfearnley

ответ

3

Вы можете использовать Model.pluck("max(length(column))"), который не будет загружать все в память.

3

Что-то вроде этого?

Model.pluck(:column).max_by(&:length) 

#=> will return the longest string 
+1

Спасибо, Андрей. Тем не менее, я пытался передать запрос серверу sql, чтобы не затягивать все строки, которые, как я думаю, ваше предложение будет делать, если я не ошибаюсь. – Ross

+1

@Ross вы правы - принятое решение более (наиболее) эффективное. –

Смежные вопросы