私がやっているサイトでは、ユーザーは次のような検索文字列を入力できます
"do you have foo bar"
Coldfusion8 を使用して、次のように | で区切られたリストを作成しています。
<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>
これは私に与えるべきです:
do|you|have|foo|bar // param_artikelbezeichnung
MySQL では、REGEX を実行しています。
...
AND ( (param_artikelbezeichnung = '') AND (1=1)
OR (
a.artikelbezeichnung REGEXP param_artikelbezeichnung
)
私の質問:
変数の前後に引用符 '' を追加する必要がありますか、それともこのように入力できますか? 検索に追加する必要がある動的な基準がたくさんあるので、一般的な情報を探しています。
手伝ってくれてありがとう!
編集:
これは私がデータベースから得ているものです:
a.artikelbezeichnung REGEXP param_artikelbezeichnung
>> using foo|bar OK
a.artikelbezeichnung REGEXP param_artikelbezeichnung
>> not passing a value > ERROR
したがって、引用符は必要ありませんが、空のフィールドでエラーが発生しないように正規表現に何かを渡す必要があります。この作品のようなものでしょうか:
AND ( (param_artikelbezeichnung = '') AND (0=1)
OR ( a.artikelbezeichnung REGEXP param_artikelbezeichnung )
ほとんど別の質問です。回答ありがとうございます!