Re: Case Insensitive Searching?
От | Josh Berkus |
---|---|
Тема | Re: Case Insensitive Searching? |
Дата | |
Msg-id | 200305251258.54689.josh@agliodbs.com обсуждение исходный текст |
Ответ на | Case Insensitive Searching? ("Ben Schneider" <bcschnei@attbi.com>) |
Список | pgsql-novice |
Ben, > So the question is, how do I perform a case insensitive search? Is there a > DB setting I can set to ignore the case? To the latter: No. To the former, there are four ways that you can do a case-insensitive search in PostgreSQL: 1) Using ILIKE: SELECT * FROM sometable WHERE textfield ILIKE 'value%'; 2) Using Regexp operators (see Functions and Operators in the docs): SELECT * FROM sometable WHERE textfield ~* 'value'; 3) Using UPPER() or LOWER() to change the case of the field before comparison; this approach can be better than 1) or 2) because these functions may be indexed, and thus if you are doing a "begins with" or "exact match" search your query may be indexed: SELECT * FROM sometable WHERE UPPER(textfield) LIKE (UPPER('value') || '%'); 4) If most of your searches are "anywhere in field" searches on large text fields, I'd reccomend a look at the two "full text search" tools available in PostgreSQL, one in the /contrib of your source, the second from openFTS.org. Overally, I would strongly recommend that you buy and read an introcductory PostgreSQL book before proceeding further with your project. -- Josh Berkus Aglio Database Solutions San Francisco
В списке pgsql-novice по дате отправления: