Как сделать нечувствительный к регистру порядок в направляющих с postgresql

Я нахожусь в процессе переключения моей среды разработки от sqlite3 до postgresql 8.4 и имею одно последнее препятствие.

В моем оригинале у меня была следующая строка во вспомогательном методе;

result = Users.find(:all, :order => "name collate NOCASE")

который обеспечил очень хороший поиск без учета регистра. Я не могу копировать это для postgresql. Должно быть легким - какие-либо идеи?

Спасибо.

52
задан Old Pro 23 January 2019 в 21:04
поделиться

3 ответа

result = Users.find(:all, :order => "LOWER(name)")

Чтобы взять немного от Брэда и Фрэнка.

80
ответ дан 7 November 2019 в 09:07
поделиться

В SQL можно использовать ORDER BY LOWER(columnname), не знаю, как это сделать в Ruby. Функциональный индекс (также по LOWER(columnname) ) поможет ускорить работу.

5
ответ дан 7 November 2019 в 09:07
поделиться

Рассматривали ли вы сохранение столбца как типа citext ? На самом деле он просто усваивает вызов функции lower (), насколько я понимаю. Впоследствии это будет автоматически для вас. Если в некоторых случаях вам нужен поиск с учетом регистра, это может быть не лучшей идеей.

6
ответ дан 7 November 2019 в 09:07
поделиться
Другие вопросы по тегам:

Похожие вопросы: