你可以在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