【发布时间】:2014-09-07 23:27:58
【问题描述】:
我有一个 Sql SP,它根据传递给 SP 的参数应用过滤器。 如果我只在下面的示例中传递有效值,例如 (2,4),它就可以工作。 但如果没有通过过滤器,它应该返回所有行。 问题正在检查 parmIndustryId 为 null 或 parmIndustryId 为 '' 空字符串,否则它可以工作,但我需要能够检查空字符串或 null。
这是我得到的错误
错误代码:1241。操作数应包含 1 列 0.000 秒
CREATE PROCEDURE `SearchIndustry`(
IN parmIndustryId TEXT
)
BEGIN
SET parmIndustryId ='2,4';
set @sql = CONCAT(' Select t1.*
FROM Industry t1
WHERE Active =1 AND(', parmIndustryId ,' is null OR t2.IndustryId IN( ', parmIndustryId, ' ))')
;
PREPARE q FROM @sql;
execute q;
END$$
DELIMITER ;
如何正确传递 IN 操作数过滤器的值?
【问题讨论】:
标签: mysql sql stored-procedures prepared-statement