多值查询

我想添加一个文本控件,可以输入多个值,用逗号隔开,如zhang,sun,li 然后写sql查询name列为zhang,sun,li的数据,请问怎么做啊

FineReport 佩里 发布于 2021-12-9 09:17
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
0
吾姓独孤Lv6高级互助
发布于2021-12-9 09:45

WorkBook9.zip

SELECT * FROM S产品

WHERE 1 = 1

${IF(LEN(产品名称)=0,"","AND 产品名称 IN ('"+REPLACE(产品名称,",","','")+"')")}

输入牛奶,苹果汁,盐,麻油 结果如下图

image.png

  • 佩里 佩里(提问者) 谢谢
    2021-12-09 09:59 
  • 佩里 佩里(提问者) 如果输入的是编号sn,然后分表存储sn的数据,如table_${ABS(hashcode(sn))%80},这种还能输入多个sn,分表去查吗
    2021-12-09 10:02 
  • 吾姓独孤 吾姓独孤 回复 佩里(提问者) 表在同一个数据库里你union 起来都加这个条件呢
    2021-12-09 10:05 
  • 佩里 佩里(提问者) 回复 吾姓独孤 但是输入的是多个以逗号隔开的sn呀,就不知道是去哪个表查了啊
    2021-12-09 10:07 
  • 亲爱的记得采纳 亲爱的记得采纳 回复 佩里(提问者) 那就都取呗,除非你同一个sn多个表都有该字段,不过也应都取出来
    2021-12-09 11:29 
最佳回答
0
ColdmanLv6高级互助
发布于2021-12-9 09:19(编辑于 2021-12-9 09:20)

select * from table where name in '(${文本控件名})'

最佳回答
0
我在等风也等你Lv6初级互助
发布于2021-12-9 09:20(编辑于 2021-12-9 09:27)

select * from 表 where 字段 in "{$( 'SUBSTITUTE(参数,",","','") ')}"也可以直接把分隔符放在sql里转换。

最佳回答
0
木木ynLv5见习互助
发布于2021-12-9 09:21

写法楼上写了,多选框

image.png

  • 佩里 佩里(提问者) 就想用文本框,怎么写呀
    2021-12-09 09:27 
  • 木木yn 木木yn 回复 佩里(提问者) 用文本框你无法管控的,万一输入是中文‘,’符号,你怎么处理?
    2021-12-09 09:39 
  • 佩里 佩里(提问者) 回复 木木yn 说明一下只能英文的逗号
    2021-12-09 09:55 
最佳回答
0
黄源Lv6中级互助
发布于2021-12-9 09:39

返回字符串,分隔符','

${if(isnull(name),''," and name in ('"+name+"')")}

  • 6关注人数
  • 519浏览人数
  • 最后回答于:2021-12-9 09:45
    请选择关闭问题的原因
    确定 取消
    返回顶部