你可以在WHERE IN子句中使用mysql @variable吗?你可以在WHERE IN(SELECT @var)中使用mysql @variable吗?
我尝试这样做:
SET @inlist =
(
SELECT GROUP_CONCAT(product_id) FROM products WHERE `status` = "new"
);
SELECT @inlist; -- shows comma separated values;
SELECT * from products where product_id IN (SELECT @inlist);
只会返回列表中的第一个产品。
我知道GROUP_CONCAT有一个默认的1k限制。
你能解释你想达到什么吗?因为你的例子没有意义。你不需要任何变量。不,你不能以这种方式使用MySQL会话变量。 – peterm
为什么使用变量时,你可以直接在where子句中使用查询? 'select * from product where product_id in(select product_id where status ='new')'(如果你想在子查询中浪费时间) – Barranka
'@ inlist'是一个字符串,它不是一个实际的值列表。 – Barmar