我正在尝试使用一个MySql代码使用一个具有多个值的字段的报告构建器,我的查询返回为空。如果我输入一个值,我的查询就会起作用。
查询:
SELECT field1,...
FROM table1
JOIN tbl2..
WHERE ...
AND Field1 IN (?)和DataSet参数(?)is:我试过了("testx >“是指试探性的,不是代码):
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,"','") & "'"如果我使用一个只有正弦值的参数,并填充,例如:
'value1', 'value2'
or
value1, value2 我也有同样的问题。
有谁知道另一种选择吗?
发布于 2020-09-23 05:07:01
占位符(?)以文字字符串而不是列表的形式传递参数。所以你的条件变成:
AND Field1 IN ('value1, value2')显然,它不会执行您想要的操作(除非给出了单个值)。
您的最佳选择是在应用程序端拆分字符串,并生成正确数量的占位符。如果这是不可能的,那么一种解决方法是使用find_in_set
AND find_in_set(Field1, replace(?, ', ', ','))replace()是故意的,因为您的csv字符串似乎在每个逗号后都有一个空格。
https://stackoverflow.com/questions/64017657
复制相似问题