mysql - MySQL 存储过程中是否有任何列表数据类型或模拟它们的方法?

标签 mysql stored-procedures

我想在 MySQL 中创建一个将列表作为参数的存储过程。例如,假设我希望能够在一次调用中为一个项目设置多个标签,那么我想要做的是定义一个过程,该过程采用项目的 ID 和要设置的标签列表。但是,我似乎找不到任何方法来做到这一点,据我所知,没有列表数据类型,但它能以某种方式被模拟吗?标签列表是否可以是逗号分隔的字符串,可以以某种方式拆分和循环?

您通常如何使用 MySQL 存储过程中的列表?

最佳答案

This文章对将数组解析为存储过程的问题进行了一些很好的讨论,因为存储过程只允许有效的表列数据类型作为参数。

您可以使用 csv 做一些巧妙的事情。 mysql 中的表类型 - 也就是说,如果您将平面文件加载到数据库中。

您可以在存储过程中创建一个临时表,遍历 csv 列表并将其插入到临时表中,然后创建一个从该表中选择值的游标。这个answer在上面提到的线程中显示了一种方法。

通常我会在进入数据库之前拆分数组,然后对每个项目单独执行查询。

关于mysql - MySQL 存储过程中是否有任何列表数据类型或模拟它们的方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8795/

相关文章:

mysql从包含重复项的列表中选择

vb.net - Oracle 日期字段 - 时间问题

php - MYsql中的存储过程在PHP中访问

sql - 找出运行缓慢的存储过程

sql - 如何为 WHERE IN() SQL 查询选择转换列表 varchar

stored-procedures - token 未知创建具有动态表名的存储过程

mysql - 将 int-timestamp 转换为时间戳(同时更新行)

php - 一次向数据库中插入多条数据

mysql - 持久异常 : ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value]

mysql - 如何将bs4结果插入数据库?