Поиск / запросы без учета регистра - PullRequest
5 голосов
/ 21 января 2011

Кто-нибудь знает, как выполнять поиск / запрос без учета регистра в Postgres 7.4?

Я думал о RegEx, но не уверен, как это сделать, или, может быть, есть функция / флаг, или я мог бы добавить запрос?

Я использую PHP для подключения и выполнения запросов.

Итак, я ищу информацию об адресе.

Пример:

123 main street
123 Main st.
123 Main Street
123 main st
123 Main st
etc...

есть мысли?

SELECT address FROM tbl WHERE address LIKE '%123 %ain%'

Ответы [ 2 ]

17 голосов
/ 21 января 2011

Используйте ILIKE, например:

...
WHERE 
    address ILIKE '123 main st%'

Документация .


В качестве альтернативы можно использовать UPPER или LOWER, например:

...
WHERE 
    LOWER(address) LIKE '123 main st%'
2 голосов
/ 21 января 2011

Помимо ILIKE и подхода lower (), я вижу две другие возможности:

  1. Используйте тип данных citext: http://www.postgresql.org/docs/9.0/static/citext.html.
  2. Используйте полнотекстовый поиск - который, возможно, является наиболее гибким и быстрым решением, хотя начать его немного сложнее.
...