我想创建一个存储过程,将逗号分隔列表作为值,并将其推入具有IN子句的选择语句。我知道find_in_set可以工作,但确实会有性能开销。我还试用了一份准备声明,但问题依然存在。MySql存储过程和逗号分隔Varchar与声明
我的实施例:
我的参数是SP1和包含值: 'valuex,VALUE年,valuez'。
BEGIN
set @sql = concat('select * from tablename WHERE assignedTo in (', sp1, ')');
PREPARE q FROM @sql;
execute q;
END
正如预期的那样,由于SQL会将值视为列名,因此会引发错误。我的问题是我如何实现:'valuex','valuey','valuez'FROM'valuex,valuey,valuez'?
同样如上有效 - 谢谢。 –