Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在WHERE子句中为IN条件声明变量_Mysql_Sql - Fatal编程技术网

Mysql 在WHERE子句中为IN条件声明变量

Mysql 在WHERE子句中为IN条件声明变量,mysql,sql,Mysql,Sql,我有下表,您也可以在sqlfiddle中找到: 我使用以下查询从此表中获取数据: SELECT Flow_Date, Product, FlowType, Country FROM Flows WHERE Flow_Date BETWEEN ("2019-05-23 00:00:00") AND ("2019-05-25 23:59:59") AND Country IN ("DE","NL") GROUP BY 1,2,3,4; 到目前为止,所有这些都非常有效 但是,现在我想在语句的WHE

我有下表,您也可以在
sqlfiddle
中找到:

我使用以下查询从此表中获取数据:

SELECT Flow_Date, Product, FlowType, Country
FROM Flows
WHERE Flow_Date BETWEEN ("2019-05-23 00:00:00") AND ("2019-05-25 23:59:59")
AND Country IN ("DE","NL")
GROUP BY 1,2,3,4;
到目前为止,所有这些都非常有效


但是,现在我想在语句的
WHERE
子句中为
IN
条件设置一个变量
因此,我尝试采用以下方法:

SET @country = ("DE", "NL");
SELECT Flow_Date, Product, FlowType, Country
FROM Flows
WHERE Flow_Date BETWEEN ("2019-05-23 00:00:00") AND ("2019-05-25 23:59:59")
AND Country IN @country
GROUP BY 1,2,3,4;
但是,有了这个错误,操作数应该包含1列。

我需要在代码中更改什么才能使其正常工作?

SET@country=“DE,NL”;
选择不同的流程日期、产品、流程类型、国家/地区
从流量
其中,流量日期介于(“2019-05-23 00:00:00”)和(“2019-05-25 00:00:00”)之间
并在_集合中找到_(Country,@Country);

检查此处的解决方案:使用此方法,我得到的错误
操作数应包含1列
这是
SET@country=(“DE”,“NL”)的错误语句。我使用以下查询从此表中获取数据:GROUP BY all output fieldlist?完全删除GROUPBY子句,但添加DISTINCT。或者添加一些聚合操作,例如,
SUM(Quantity)
…谢谢。正是我需要的@所有输出字段的Michi分组会导致排序过多。见我对这一问题的评论。
SET @country = ("DE", "NL");
SELECT Flow_Date, Product, FlowType, Country
FROM Flows
WHERE Flow_Date BETWEEN ("2019-05-23 00:00:00") AND ("2019-05-25 23:59:59")
AND Country IN @country
GROUP BY 1,2,3,4;