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 제한이 있다는 것을 알고 있습니다. 자주이 작업을 수행해야하는 경우
PREPARE stmt FROM CONCAT('SELECT * from products where product_id IN (', @inlist, ')');
EXECUTE stmt;
, 당신은 단지 다음 저장 프로 시저에 넣어, 및 수 :
달성하려는 것을 설명해 주시겠습니까? 당신의 본보기가 말이되지 않기 때문입니다. 당신은 그것에 대한 어떤 변수도 필요하지 않습니다. 그리고 그런 식으로 MySQL 세션 변수를 사용할 수 없습니다. – peterm
왜'where' 절에서 직접 쿼리를 사용할 수있을 때 변수를 사용합니까? 'select * from product_id where (select product_id where status = 'new')'(하위 쿼리에서 시간 낭비를 원한다면) – Barranka
'@ inlist'는 문자열이며, 실제 값 목록이 아닙니다. – Barmar