SQL数据集查询的字段的条件有特殊字符,需要转义,怎么做?

SELECT

*

FROM table

where 1=1

${IF(len(NAME)==0,"","and SKU_NAME like '%"+NAME+"%'" )}

这个NAME的值是从文本控件取的,有特殊字符\ ,请问怎么解决?

FineReport zhanghang 发布于 2020-3-27 15:17
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
JackloveLv7高级互助
发布于2020-3-27 15:18(编辑于 2020-3-27 15:25)
replace(SKU_NAME,'\','')

参数里面写
${IF(len(NAME)==0,"","and replace(SKU_NAME,'\','')like '%"+NAME+"%'" )}

先把特殊符号用replace替换掉不就好了

  • zhanghang zhanghang(提问者) 你是指在SQL里replace,还是在控件里写公式replace?在sql里面我不会,请大神教教我。在控件里写手动输入的可以替换掉,但是复制的替换不掉
    2020-03-27 15:21 
  • Jacklove Jacklove 回复 zhanghang(提问者) sql里面replace(SKU_NAME,\'\\\',\'\')
    2020-03-27 15:23 
  • zhanghang zhanghang(提问者) 可以了,感谢!我以开始以为不能在里面写函数,写replace会当成字符串
    2020-03-27 15:35 
最佳回答
0
PoseidonLv5高级互助
发布于2020-3-27 15:19

查询的时候也必须带上这个\么?


使用replace,把\改为\\

  • zhanghang zhanghang(提问者) 对,应为NAME里面有很多带\\,别人可能直接复制过来,就查不出来了
    2020-03-27 15:22 
  • 4关注人数
  • 1112浏览人数
  • 最后回答于:2020-3-27 15:25
    请选择关闭问题的原因
    确定 取消
    返回顶部