Programming in mysql: do I need to add quotation marks when adding a string variable to a MySQL SELECT using REGEXP? on newest questions tagged mysql – Stack Overflow

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!

See Answers


source: http://stackoverflow.com/questions/11203166/do-i-need-to-add-quotation-marks-when-adding-a-string-variable-to-a-mysql-select
Programming in mysql: programming-in-mysql



online applications demo