Eri*_*air 4 sql coldfusion cfquery qoq
我有一个简单的搜索查询:
<cfquery name="_qSearch" dbtype="Query">
SELECT
*
FROM MyQoQ
WHERE
DESCRIPTION LIKE '%#URL.searchString#%'
</cfquery>
Run Code Online (Sandbox Code Playgroud)
此查询适用于大多数值.但是,如果有人搜索类似的值"xxx[en",它会弹出错误消息The pattern of the LIKE conditional is malformed..
有没有办法解决这个问题,因为支架在CFQUERY中有特殊用途?
环比共享一个TSQL的功能(MS SQL Server)的,从而它不只是%和_那些在LIKE通配符-它也支持正则表达式类型文字类,在[a-z]任何小写字母.
要转义这些值并匹配文字等价物,您可以使用字符类本身,即[[]匹配文字[,当然您可能也想要转义任何%和_用户输入 - 您可以这样做所有三个:
'%#Url.SearchString.replaceAll('[\[%_]','[$0]')#%'
Run Code Online (Sandbox Code Playgroud)
这只是一个简单的正则表达式替换(使用String.replaceAll)来匹配的所有实例[或%或_和包裹各一[.. ]-所述$0关于更换侧表示匹配的文本.
| 归档时间: |
|
| 查看次数: |
922 次 |
| 最近记录: |