sql查询中字段和值都想用参数来实现

比如我想要比如 select * from 表1 where  regexp_like('${ziduan}','${zhi}') ,后台查不到数据,比如我ziduan实际值用字段,zhi实际值用值,日志中的SQL是 select * from 表1 where  regexp_like('字段',值) 如果去掉‘字段’的单引号,就能够查询到数据,这个应该如何处理呢,怎么才能让‘字段’变成 字段 形式呢,或者用其它方式实现呢,

FineReport xjxzhb 发布于 2019-1-4 00:30
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
城落满芯Lv6中级互助
发布于2019-1-4 08:11
select * from 表1 where 1=1
${if(len(ziduan)=0,"","and "+ziduan+"='"+zhi+"'")}

不知是不是你想要的效果

  • xjxzhb xjxzhb(提问者) 可以,谢谢select * from 表1 where 1=1 ${if(len(ziduan)=0,\"\",\"and \"+ziduan+\" like\'%\"+zhi+\"%\'\")}原来报错,是因为like前要加空格,突然看到你and后的空格顿时领悟,谢谢
    2019-01-04 15:15 
最佳回答
0
cherishdqyLv7高级互助
发布于2019-1-4 09:02(编辑于 2019-1-4 15:16)

字段参数去掉单引号就可以了吧

select * from 表1 where  regexp_like(${ziduan},'${zhi}') 

image.png

  • cherishdqy cherishdqy 回复 xjxzhb(提问者) 没问题的啊,报配置错误要看日志啊,不一定是这个错误啊
    2019-01-04 15:16 
  • xjxzhb xjxzhb(提问者) 回复 cherishdqy 哦,好的,我看下日志,到底哪里错了
    2019-01-04 15:19 
  • xjxzhb xjxzhb(提问者) 谢谢,大神cherishdqy,果然可以!!!!!!
    2019-01-04 15:22 
最佳回答
0
flyingsnakeLv6资深互助
发布于2019-1-4 15:19(编辑于 2019-1-4 15:21)

select * from 表1 where  

1=1

${if(len(ziduan)=0,""," and regexp_like ('"+ziduan+"','"+zhi+"')")}



  • xjxzhb xjxzhb(提问者) flyingsnake大神,\'\"+ziduan+\"\'去掉两边的单引号,功能实现,谢谢大神帮忙
    2019-01-04 15:28 
  • flyingsnake flyingsnake 回复 xjxzhb(提问者) 嗯嗯。解决就是好同志
    2019-01-04 15:37 
  • xjxzhb xjxzhb(提问者) 回复 flyingsnake 大神,问下,zhi我想在加个函数,自动将小写字母转换成大写字母,函数加的位置应该是哪里呢
    2019-01-04 15:40 
  • 4关注人数
  • 635浏览人数
  • 最后回答于:2019-1-4 15:21
    请选择关闭问题的原因
    确定 取消
    返回顶部