模糊搜索提示缺失表达式

image.png这种模糊查询语句应该怎么写呀 试了好几种格式都是提示缺失表达式

image.png

${if(len(input)==0,""," AND AUDIT LIKE ('%"+ input +"%')")} 用了这种还是提示缺失表达式

sql的原始语句

SELECT x.*,x.ROWID FROM DEVMSAEG.MID_REPORT_13_1_CORP_INFO x

WHERE SELECT * FROM MID_REPORT_13_1_CORP_INFO radd

where 1=1

and  audit like '%江苏%' 

问题解决:AUDIT 是数据库那边的关键字 修改了名字之后就能用了

FineReport yzmPwDDd9512374 发布于 2022-10-12 17:51 (编辑于 2022-10-13 09:25)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-10-12 18:07(编辑于 2022-10-12 18:27)

where 1=1

${if(len(input) == 0 , "" ,"and  audit like '%"+ input +"%' ")}

把里面生成的sql语句复制出来。去数据库查询看。它的语句是如何的

SELECT x.*

FROM MID_REPORT_13_1_CORP_INFO x 

 where 1=1 

 and audit like '%江苏%'  

这是什么神仙用法?

image.png

  • yzmPwDDd9512374 yzmPwDDd9512374(提问者) 还是提示缺失表达式 纳闷了
    2022-10-12 18:10 
  • CD20160914 CD20160914 回复 yzmPwDDd9512374(提问者) 看我上面截图的说明。
    2022-10-12 18:11 
  • CD20160914 CD20160914 回复 yzmPwDDd9512374(提问者) 把括号去掉。你直接复制我的语句。。
    2022-10-12 18:12 
  • CD20160914 CD20160914 回复 yzmPwDDd9512374(提问者) 我的语句没有括号呀。在like后面。。你复制我上面的语句测试看
    2022-10-12 18:13 
  • yzmPwDDd9512374 yzmPwDDd9512374(提问者) 回复 CD20160914 我用的执行sql语句是 where 1=1 and audit like \'%江苏%\' SQL 错误 [936] [42000]: ORA-00936: 缺失表达式 Caused by: Error : 936, Position : 67, Sql = SELECT x.*,x.ROWID FROM DEVMSAEG.MID_REPORT_13_1_CORP_INFO x WHERE where 1=1 and audit like \'%江苏%\' , OriginalSql = SELECT x.*,x.ROWID FROM DEVMSAEG.MID_REPORT_13_1_CORP_INFO x WHERE where 1=1 and audit like \'%江苏%\' , Error Msg = ORA-00936: 缺失表达式
    2022-10-12 18:18 
最佳回答
0
runerLv7资深互助
发布于2022-10-12 17:52

and  1=1 ${if(len(i_ys) == 0 , "" ,"and  ys like '%"+ i_ys +"%' ")}

  • yzmPwDDd9512374 yzmPwDDd9512374(提问者) 还是不行 提示缺失表达式 是因为和前面的where 1=1 冲突了么
    2022-10-12 17:58 
  • runer runer 回复 yzmPwDDd9512374(提问者) 你得先确定是不是这一个参数造成的报错
    2022-10-12 18:17 
  • runer runer 回复 yzmPwDDd9512374(提问者) 你的表传参有问题吧 SELECT x.*,x.ROWID FROM DEVMSAEG.MID_REPORT_13_1_CORP_INFO x WHERE SELECT * FROM MID_REPORT_13_1_CORP_INFO radd where 1=1 and audit like \'%江苏% 你看where后面 又一个select
    2022-10-12 18:41 
最佳回答
0
hu151254Lv4见习互助
发布于2022-10-12 22:53

${if(len(input)==0,""," AND AUDIT LIKE ('%"+ input +"%')")}  改成  ${if(len(input)==0,""," AND AUDIT LIKE '%"+ input +"%'")}

  • yzmPwDDd9512374 yzmPwDDd9512374(提问者) 不行 还是缺失表达式
    2022-10-13 09:09 
  • hu151254 hu151254 回复 yzmPwDDd9512374(提问者) 看你的两个语句,只有$input非空,错误肯定在这里。 我看 like 后面的模糊查询是用括号括起来,去掉括号可以不
    2022-10-13 10:12 
  • hu151254 hu151254 回复 yzmPwDDd9512374(提问者) AUDIT LIKE (\'%\"+ input +\"%\') 这对括号去了试试
    2022-10-13 10:15 
  • 4关注人数
  • 375浏览人数
  • 最后回答于:2022-10-13 09:25
    请选择关闭问题的原因
    确定 取消
    返回顶部