where中如何传带\\\'的值

where中如何传带'的值呢?

我筛选框中有个值是这样的:N,N'-二甲苯基

选中这个指的时候,就报错,我在数据库里查这个值话,得加个'号:N,N''-二甲苯基,这样才可以查出来,如何带参查呢。数据类似如下,要实现单选、多选、全选

image.png

FineReport 小沙鱼 发布于 2025-3-5 10:06 (编辑于 2025-3-5 14:01)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
用户k6280494Lv6专家互助
发布于2025-3-5 10:08(编辑于 2025-3-5 10:09)

select * from Air_Accidents

where zd='${REPLACE(cs,"'","''")}'

zd是字段名  cs是参数

  • 小沙鱼 小沙鱼(提问者) 这个是筛选框是复选框,可选可不选,这要怎么传呢
    2025-03-05 10:27 
  • 用户k6280494 用户k6280494 回复 小沙鱼(提问者) 做个判断
    select * from Air_Accidents

    where 1=1
    ${if(len(cs)=0,"","and zd='"+REPLACE(cs,"'","''")+"'")}
    2025-03-05 10:32 
  • 小沙鱼 小沙鱼(提问者) 回复 用户k6280494 数据是有的有包含这个符号的',有的没有呢,那样写,只能把有包含这个符号的查出来~
    2025-03-05 11:49 
  • 用户k6280494 用户k6280494 回复 小沙鱼(提问者) ${if(len(cs)=0,"",if(find("'",cs)>0,"and zd='"+REPLACE(cs,"'","''")+"'","and zd='"+cs+"'"))}
    2025-03-05 13:16 
  • 小沙鱼 小沙鱼(提问者) 回复 用户k6280494 还是不行~查不出来,你看我完善的问题,写了点类似的数据
    2025-03-05 14:02 
最佳回答
0
华莉星宸Lv7资深互助
发布于2025-3-5 14:07

换个方式处理吧,传实际值去数据库里面查

单独给这些名字定义一个数据字典,参考如下

image.png

最佳回答
0
iQianLv4初级互助
发布于2025-3-5 14:40

把参数和字段里的单引号 都替换成空,或者其他字符就可以了:

(转义字符:连续2个单引号,代表一个单引号)

image.png

最佳回答
0
CD20160914Lv8专家互助
发布于2025-3-5 15:01

因为你替换后,会把中间的多替换了

数据类似这样

image.png

复选中间的分隔符号为  ','

 SELECT * FROM MyTable_test

where 1=1

and myname in('${replace(replace(cs,"'","''"),"'',''","','")}')

image.png

  • 5关注人数
  • 64浏览人数
  • 最后回答于:2025-3-5 15:01
    请选择关闭问题的原因
    确定 取消
    返回顶部