2013-08-14 1 views
0

У меня есть MySQL запрос, как это:Использование BLOB переменные в MySQL

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

Но он возвращает Null. Если я попытаюсь ВЫБЕРИТЬ * из продуктов, где category_id IN (37,44,46) - он работает.

@category - это переменная BLOB (она генерирует другой запрос).

Я попытался написать SELECT * из продуктов, где category_id IN (SELECT @category), но он не работает слишком :(

+2

Если вы внимательно рассмотрите то, что вы написали, вы увидите, что вы делаете 'где category_id IN ('37, 44,46 ')', который не работает, а затем вы ссылаясь на 'where category_id IN (37,44,46)', который * работает *. Обратите внимание на diffe и вы поймете, почему работает Раймонд Н. –

ответ

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