我想在MySQL中创建一个以列表作为参数的存储过程.例如,假设我希望能够在一次调用中为项目设置多个标签,那么我想要做的是定义一个过程,该过程接受项目的ID和要设置的标签列表.但是,我似乎无法找到任何方法来做到这一点,据我所知,没有列表数据类型,但可以以某种方式进行模拟吗?标签列表是否可以是逗号分隔的字符串,可以以某种方式拆分和循环?
你如何处理MySQL存储过程中的列表?
该文章对解析阵列存储过程的问题的一些很好的讨论,因为存储过程只允许有效的表列数据类型作为参数.
你可以用mysql中的csv表类型做一些巧妙的事情- 也就是你要将一个平面文件加载到db中.
您可以在存储过程中创建临时表,迭代csv列表并将其插入临时表,然后创建一个光标,从该表中选择值.这个答案在上面提到的线索表明这样做的方式.
通常我会在进入数据库之前拆分数组,然后在每个项目上单独执行查询.