0

我有一个这样的mysql查询:

set @category = '37,44,46';
SELECT * from products where category_id IN (@category);

但它返回 Null。如果我尝试从 category_id IN (37,44,46) 的产品中选择 * - 它可以工作。

@category 是一个 BLOB 变量(它由另一个查询生成)。

我试图从 category_id IN (SELECT @category) 的产品中编写 SELECT *,但它也不起作用:(

4

1 回答 1

3

你需要更多这样的东西

SET @category = '37,44,46';
SET @sql = CONCAT('SELECT * FROM products WHERE category_id IN (',@category,')');
PREPARE stmt FROM @sql;
EXECUTE stmt;
DROP PREPARE stmt; 

查看 sqlfiddle http://sqlfiddle.com/#!2/4a1eb0/1

于 2013-08-14T09:54:18.067 回答