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;