On a site I'm doing a user can enter a search string like
"do you have foo bar"
I'm using Coldfusion8 to create a |-delimited list like so:
<cfif len(LOCAL.Search.s_artikelbezeichnung) GT 0>
<cfloop list="#LOCAL.Search.s_artikelbezeichnung#" delimiters=", " index="terms">
<cfset variables.searchTerms = variables.searchTerms & terms & '|'>;
</cfloop>
<cfset variables.searchTerms = Left(variables.searchTerms, len(variables.searchTerms)-1)>
</cfif>
Which should give me:
do|you|have|foo|bar // param_artikelbezeichnung
In MySQL I'm then doing a REGEX:
...
AND ( (param_artikelbezeichnung = '') AND (1=1)
OR (
a.artikelbezeichnung REGEXP param_artikelbezeichnung
)
My Question:
Do I have to add quotation marks '' around my variable or can I enter it like this? I have a bunch of dynamic criteria I need to add to a search, so I'm looking for some general info.
Thanks for help!
EDIT:
Ok this is what I'm getting from the database:
a.artikelbezeichnung REGEXP param_artikelbezeichnung
>> using foo|bar OK
a.artikelbezeichnung REGEXP param_artikelbezeichnung
>> not passing a value > ERROR
So I don't need quotation marks, but I need to pass something to the regex to not produce an error on empty fields. Would something like this work:
AND ( (param_artikelbezeichnung = '') AND (0=1)
OR ( a.artikelbezeichnung REGEXP param_artikelbezeichnung )
Almost another question. Thanks for answering!