MySQL 操作JSON

1. 插入JSON数据

INSERT INTO your_table (json_column) VALUES ('{"key": "value", "number": 456}');

2. 查询JSON字段

获取JSON字段的值
  • 使用->操作符获取JSON对象的值(作为JSON格式返回)
SELECT json_column->"$.key" FROM your_table;
  • 使用->>操作符获取JSON对象的值(作为文本返回)
SELECT json_column->>"$.key" FROM your_table;
提取JSON数组中的元素
SELECT json_column->"$.array[0]" FROM your_table; -- 获取数组的第一个元素

3. 修改JSON数据

MySQL没有直接的UPDATE语句来修改JSON对象中的某个值,但你可以使用JSON_SET()JSON_REPLACE()JSON_INSERT(), 和 JSON_REMOVE()等函数来更新JSON列。

  • JSON_SET():插入或更新数据
UPDATE your_table  
SET json_column = JSON_SET(json_column, '$.key', 'newValue')  
WHERE condition;
  • JSON_REPLACE():只替换已存在的值
UPDATE your_table  
SET json_column = JSON_REPLACE(json_column, '$.key', 'replacedValue')  
WHERE condition;
  • JSON_INSERT():只插入不存在的值
UPDATE your_table  
SET json_column = JSON_INSERT(json_column, '$.newKey', 'newValue')  
WHERE condition;
  • JSON_REMOVE():从JSON文档中删除数据
UPDATE your_table  
SET json_column = JSON_REMOVE(json_column, '$.keyToRemove')  
WHERE condition;

4. 搜索JSON数据

  • 使用JSON_CONTAINS()检查JSON文档是否包含特定值
SELECT * FROM your_table  
WHERE JSON_CONTAINS(json_column, '"searchValue"', '$.path');
  • 使用JSON_SEARCH()查找JSON文档中的路径
SELECT JSON_SEARCH(json_column, 'one', 'searchValue') FROM your_table;

5. JSON数组操作

  • 使用JSON_ARRAY()创建JSON数组
SET @json_array = JSON_ARRAY('a', 1, NOW());
  • 使用JSON_APPEND()向JSON数组添加元素
UPDATE your_table  
SET json_column = JSON_APPEND(json_column, '$.array', 'newValue')  
WHERE condition;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值