mysql字符串删除数据库,从存储在MySQL数据库中的json字符串中删除键:值

我在表中有一列以格式存储:

{"field1":"val1","field2":"val4"}

{"field1":"val2","field2":"val5"}

{"field1":"val3","field2":"val6"}

我需要删除所有的field1值(例如“field1”:“val1”,“field1”:“val2”,“field1”:“val3”),结果应该是

{"field2":"val4"}

{"field2":"val5"}

{"field2":"val6"}

我试图通过替换实现这一点,但卡在’“field1”中:“val1”’字符串val1可以是任何值,如null,某个整数.

UPDATE emp SET col = REPLACE(col, '"field1":"val1"', '')

由于val1的动态值,我陷入困境.

解决方法:

你可以这样做:

SELECT SUBSTRING(Field, 1, INSTR(Field, '"field1"')) + SUBSTRING(Field, INSTR(Field, '"field2"'), LENGTH(Field)) FROM @Temp

我不知道这是否有效,但这是个主意. (无法测试ATM)

这是MsSQL等价物(工作,刚测试!):

SELECT SUBSTRING(Field, 0, CHARINDEX('"field1"', Field)) + SUBSTRING(Field, CHARINDEX('"field2"', Field), LEN(Field)) FROM @Temp

标签:mysql,sql,mysql-json

来源: https://codeday.me/bug/20190715/1465791.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值