Rails PostgreSQL без учета регистра поиска с LIKE - PullRequest
10 голосов
/ 25 марта 2012

У меня есть это в моем контроллере:

Konkurrencer.where("title LIKE ?", "%#{params[:q]}%").limit(4)

Я думаю, что этот запрос чувствителен к регистру.Он не должен быть чувствительным к регистру.

Ответы [ 2 ]

31 голосов
/ 25 марта 2012

Вы можете использовать ILIKE вместо:

Konkurrencer.where("title ILIKE ?", "%#{params[:q]}%").limit(4)

Из документа:

Ключевое слово ILIKE можно использовать вместоКак, чтобы сделать совпадение без учета регистра в соответствии с активной локалью.Это не входит в стандарт SQL, но является расширением PostgreSQL.

2 голосов
/ 20 января 2015

Для использования без учета регистра при поиске в PostgreSQL с использованием LOWER ...

Пример:

def self.search(client, date_start, date_end)
       joins(:customer).where("LOWER(customers.name) LIKE ? AND date >= ? AND date <= ?", "%#{client}%", date_start, date_end)
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...