在我正在做的网站上,用户可以输入搜索字符串,例如
"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中,我正在做一个正则表达式:
...
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 )
几乎是另一个问题。谢谢回答!