MySQL 处理 JSON

本文介绍了如何在MySQL中进行json数据的操作,包括修改json字段值(如JSON_SET、JSON_INSERT和JSON_REPLACE),字符串转为List集合的方法,以及从json数组中提取值的SQL查询技巧。
摘要由CSDN通过智能技术生成

MySQL修改 json数据

-- 如下几个函数,都是对字段 columns 中的 json 进行修改,key对应的是json中的key值,value是要设置的新值
UPDATE tablename SET jsoncolumn = JSON_SET(columns, '$.key', 'value') WHERE id=1;
UPDATE tablename SET jsoncolumn = JSON_INSERT(columns, '$.key', 'value') WHERE id=1;
UPDATE tablename SET jsoncolumn = JSON_REPLACE(columns, '$.key', 'value') WHERE id=1;
-- JSON_UNQUOTE可以解析json数据中的双引号,双引号需要在单引号内
UPDATE tablename SET jsoncolumn = JSON_SET(columns, '$.key', JSON_UNQUOTE('new"value')) WHERE id=1;

MySQL 字符串转 List 集合

-- 可以将 str 当做字符串存储在字段中,然后使用以下 SQL 将查询到的字符串转为 List 集合,结果将字符串根据‘,’拆分,返回多行结果集
SET @str = '1694491969,1694500061,1694500072,1694500076,1694500172,1694500221,1694500258,1694510752,1694510843';

SELECT DISTINCT
     SUBSTRING_INDEX(SUBSTRING_INDEX(a.your_column, ',', b.help_topic_id + 1), ',',-1) AS fj_id, b.help_topic_id
FROM your_table a
    JOIN mysql.help_topic b ON b.help_topic_id < (LENGTH(a.your_column) - LENGTH(REPLACE(a.your_column, ',', '')) + 1);

MySQL 提取 json 中的数组

-- 表中字段值类型:[10, 20, 30, 40],可以拆分为多行返回结果集
SELECT CAST(VALUE AS CHAR)
FROM json_tables,
JSON_TABLE(json_array_num, "$[*]" COLUMNS (VALUE VARCHAR(255) PATH '$')) AS extracted_values;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值