Rails + PostgreSQL -Использование Like - PullRequest
4 голосов
/ 23 ноября 2010

У меня есть два следующих запроса:

SELECT users.* FROM "users" WHERE (fname || lname LIKE '%james%')

SELECT users.* FROM "users" WHERE (fname || lname LIKE '%James%')

У меня есть запись в таблице пользователей с именем fname = James

У меня проблема в том, что первый запрос возвращает 0 результатов, а второе возвращает правильный результат.

Я хочу, чтобы LIKE не учитывал регистр.Идеи?Спасибо

Ответы [ 3 ]

6 голосов
/ 23 ноября 2010

SELECT users.* FROM "users" WHERE (fname || lname ILIKE '%james%')

ILIKE = LIKE без учета регистра.Обратите внимание, что это относится только к PostgreSQL, а не к стандарту SQL.

3 голосов
/ 23 ноября 2010

Попробуйте использовать

  SELECT users.* FROM "users" WHERE (fname || lname ILIKE '%james%')

Обратите внимание на «Я» в LIKE

0 голосов
/ 04 февраля 2011

Запросы с "LIKE" или "ILIKE" довольно медленные, особенно для таблиц с большим количеством записей. Я думаю, что было бы быстрее, если бы вы использовали возможность полнотекстового поиска PostgreSQL.

Документы PostgreSQL для текстового поиска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...