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

2024-03-15

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

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


This http://forums.mysql.com/read.php?98,50521,50521#msg-50521文章对将数组解析为存储过程的问题进行了一些很好的讨论,因为存储过程只允许有效的表列数据类型作为参数。

您可以用csv http://dev.mysql.com/tech-resources/articles/csv-storage-engine.htmlmysql 中的表类型 - 也就是说,如果您将平面文件加载到数据库中。

您可以在存储过程中创建一个临时表,迭代 csv 列表并将其插入到临时表中,然后创建一个从该表中选择值的游标。这answer http://forums.mysql.com/read.php?98,50521,184245#msg-184245在上面提到的线程中显示了一种执行此操作的方法。

一般来说,我会在访问数据库之前拆分数组,然后对每个项目单独执行查询。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MySQL存储过程中是否有列表数据类型,或者模拟它们的方法? 的相关文章

随机推荐