将带有分隔符的参数,怎么转成用or拼接的sql

如果参数为    62030Y;70839Y;A8EC2

怎么在sql里把这个转换成 

and (code like '%62030Y%' or code like '%70839Y%' or code like '%A8EC2%')

因为数据库的code字段也是用;分割的,所以用不了in去查询,只能用这样or 加上like去查

SQL Incentive. 发布于 2024-5-7 11:37 (编辑于 2024-5-7 11:38)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
小潘同學Lv5见习互助
发布于2024-5-7 11:42(编辑于 2024-5-7 13:18)

image.png

  • Incentive. Incentive.(提问者) 用不了in 因为数据库的这个字段也是用;分割的。
    2024-05-07 11:43 
  • 小潘同學 小潘同學 回复 Incentive.(提问者) 修改了,你参考下
    2024-05-07 13:18 
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-5-7 11:43

zd in (replace(${cs},";","','"))

最佳回答
0
周周周周Lv5见习互助
发布于2024-5-7 11:44

mysql:select concat(concat("code like ('%'",replace((select '62030Y;70839Y;A8EC2' as name from dual),';',"%' or '%")),"%')") as name from dual

最佳回答
0
Z4u3z1Lv6专家互助
发布于2024-5-7 11:46
最佳回答
0
snrtuemcLv8专家互助
发布于2024-5-7 11:48(编辑于 2024-5-7 11:49)

参考下拉复选框多值模糊查询 https://help.fanruan.com/finereport/doc-view-2499.html

image.png

============

where 1=1

${if(len(参数)=0,"","and code like '%"+replace(参数,";","%' or code like '%")+"%'")}

  • 5关注人数
  • 132浏览人数
  • 最后回答于:2024-5-7 13:18
    请选择关闭问题的原因
    确定 取消
    返回顶部