mysql存储过程参数为数组或者对象的处理方式

问题场景:做一个物品系统, 需要批量存入。

思考:储存过程的的参数不支持数组,是否可以用json字符串代替

测试用的JSON字符串:

let obj = {
    itemlist:[
        {
            regid:0,
            iteminfo:{
                item_uid:"10441",
            },
            amoount:1
        },
        {
            regid:10,
            amoount:1
        }
    ]
}





{"itemlist":[{"regid":0,"iteminfo":{"item_uid":"10441"},"amount":1},{"regid":10,"amount":1}],"itemcount":2}

存储过程的代码:

DELIMITER  $$
CREATE PROCEDURE testJson(IN json_str VARCHAR(4096), OUT itemcount INT, 
                        OUT info VARCHAR(128), OUT info1 VARCHAR(64),  OUT info2 VARCHAR(64), OUT regid BIGINT)
BEGIN
    DECLARE item_uid VARCHAR(128);
    DECLARE amount , i INT;
    SET itemcount = json_str->>"$.itemcount";
    SET info = json_str->>"$.itemlist";
    SET info1 = json_str->>"$.itemlist[0]";
    SET info2 = json_str->>"$.itemlist[1]";
    set regid = info1->>"$.regid";
END$$

调用测试:

CALL testJson('{"itemlist":[{"regid":10,"amount":1}, {"regid":0,"iteminfo":{"item_uid":"10441"},"amount":1}],"itemcount":2}', @itemcount, @info, @info1, @info2, @regid);

测试结果:

 

说明:

  1. 这段存储过程的的json字符串 里加入了itemcount字段, 用来表示itemlist的数量。感觉应该有办法可以通过itemlist直接获得,但是因为赶进度, 先由调用的程序计算出itemcount传进来。
  2. 还不大理解$.和->>的意义, 查了一下, 没找到, 有空了再找找。应该是mysql 的json类型相关的内容
  3. 上面的一些用法是mysql的json的字段类型, 我是用的5.7的mysql测试的, 不确定更早的版本是否支持

参考:

https://blog.csdn.net/qq_25175063/article/details/79969204

https://www.cnblogs.com/kuangke/p/5607471.html

 

  • 4
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
在LabVIEW中,可以使用数据库模块来实现将数组数据写入MySQL数据库的操作。下面是一个简单的步骤示例: 1. 首先,在LabVIEW中建立一个数据数组,存储需要写入MySQL数据库的数据。可以使用LabVIEW的数组功能和控制结构来构建和处理这个数据数组。确保数据类型与MySQL数据库的字段类型相匹配。 2. 安装MySQL数据库连接器。在LabVIEW的软件中,点击“工具”,然后“软件包管理器”,搜索并安装MySQL数据库连接器。 3. 使用MySQL数据库连接器建立MySQL数据库连接。在LabVIEW中创建一个数据库连接对象,并根据你的MySQL数据库的设置和参数来配置连接对象。例如,设置数据库服务器地址、用户名、密码等相关信息,以确保成功连接MySQL数据库。 4. 创建一个数据库查询对象。在LabVIEW中创建一个数据库查询对象,该对象用于执行MySQL数据库的写入操作。设置对应的SQL查询语句,可以使用拼接字符串方式将数据数组的内容格式化为INSERT语句。 5. 执行数据库查询操作。通过将数据数组中的每个元素逐个插入到MySQL数据库中,执行数据库查询操作。可以使用循环语句来实现逐个插入的功能。 6. 关闭数据库连接。在所有的数据库操作结束之后,关闭数据库连接,释放资源。 这是一个简单的步骤示例,实际的操作可能会更复杂并根据具体的需求有所区别。但是,通过以上的步骤,在LabVIEW中可以很方便地将数组数据写入MySQL数据库。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值