Michael Fuhr wrote:
On Wed, Apr 20, 2005 at 11:28:28AM -0400, David Gagnon wrote:Maybe there is a simple way to to this but I want find string X in different column. The search must not be case sensitive.
I have a web interface with offers a search field. This search field will look for the string X in 12 different columns. If the string is found anywhere I return the row.
The problem is that the user is eable to put spacial character like : [* This create invalid regular expression and make my sql crash.
ICNUM~* #descriptionOrKeyword#
Is there a way to disable all meta-character.
Why are you doing a regular expression search if you don't want to allow regular expressions?
So that searching "aBc" in "abcDef" return true. I don't want META-CHaracter. Or at least I don't want meta-character to cause errors (i.e.: No
ERROR: invalid regular expression: brackets [] not balanced.
Thanks for your help /David
I found this in the manual .. but haven't found example :-(:
: ....with ***=, the rest of the RE is taken to be a literal string, with all characters considered ordinary characters.
Read again the entire sentence, especially the first few words:
If an RE begins with ***=, the rest of the RE is taken to be a literal string, with all characters considered ordinary characters.
Here are some examples:
SELECT 'test string' ~ 'test[*'; ERROR: invalid regular expression: brackets [] not balanced
SELECT 'test string' ~ '***=test[*';
?column? ----------
f
(1 row)
SELECT 'test[* string' ~ '***=test[*';
?column? ----------
t
(1 row)
---------------------------(end of broadcast)--------------------------- TIP 7: don't forget to increase your free space map settings