首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >具有多个值查询的报表生成器Mysql字段为空

具有多个值查询的报表生成器Mysql字段为空
EN

Stack Overflow用户
提问于 2020-09-23 05:04:27
回答 2查看 46关注 0票数 0

我正在尝试使用一个MySql代码使用一个具有多个值的字段的报告构建器,我的查询返回为空。如果我输入一个值,我的查询就会起作用。

查询:

代码语言:javascript
复制
SELECT field1,...
  FROM table1
  JOIN tbl2..
 WHERE ...
   AND Field1 IN (?)

和DataSet参数(?)is:我试过了("testx >“是指试探性的,不是代码):

代码语言:javascript
复制
test1 >   =Join(Parameters!param1.Value,",")
test2 >   =Join(Parameters!param1.Value,"','")
test3 >   =Split(Join(Parameters!param1.Value,","),",")    
test4 >   ="'" & Join(Parameters!param1.Value,"','") & "'"  
test5 >   =CStr(Join(Parameters!param1.Value,","))
test6 >   ="'" & CStr(Join(Parameters!param1.Value,",")) & "'" 
test7 >   =SPLIT(JOIN(Parameters!param1.Value,","),",")
test8>   ="'" & Join(Parameters!param1.Value,"','") & "'"

如果我使用一个只有正弦值的参数,并填充,例如:

代码语言:javascript
复制
'value1', 'value2' 
or
value1, value2 

我也有同样的问题。

有谁知道另一种选择吗?

EN

回答 2

Stack Overflow用户

发布于 2020-09-23 05:07:01

占位符(?)以文字字符串而不是列表的形式传递参数。所以你的条件变成:

代码语言:javascript
复制
AND Field1 IN ('value1, value2')

显然,它不会执行您想要的操作(除非给出了单个值)。

您的最佳选择是在应用程序端拆分字符串,并生成正确数量的占位符。如果这是不可能的,那么一种解决方法是使用find_in_set

代码语言:javascript
复制
AND find_in_set(Field1, replace(?, ', ', ','))

replace()是故意的,因为您的csv字符串似乎在每个逗号后都有一个空格。

票数 0
EN

Stack Overflow用户

发布于 2020-09-25 20:41:49

在将整个查询移动到表达式内的表达式exemple后解决,我可以使用参数名而不是?我可以按照自己的意愿在查询中格式化连接的参数。

exemple

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64017657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档