首页 > 数据库 >【Mysql】处理Json

【Mysql】处理Json

时间:2023-07-28 18:36:35浏览次数:35  
标签:f2 处理 age JSON json -- Json Mysql id

Mysql中处理Json

  • JSON_EXTRACT
select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.tel");
返回结果 "13240133388"       
select json_extract('{"name":"Zhaim","tel":"13240133388"}',"$.name");
返回结果 "Zhaim"  
select json_extract(data,'$.name') from tab_json;
可以直接对 表 进行操作, 会自己寻找对应key没有则返回null

​ json_extract json提取,可以从json对象中直接提取特定key的值, "$.key"

  • INSERT

    INSERT INTO `t1` VALUES (1,'1','{"a":1, "b":"2"}');
    

    用自带的insert插入Json对象

  • JSON_OBJECT

INSERT INTO `t1` VALUES (1, '1', JSON_OBJECT("a", 1, "b", "2"));

​ json_object 生成一个json对象

  • JSON_ARRAY

    -- 插入json array到数据库
    INSERT INTO `t1` VALUES (2, '2', JSON_ARRAY("arr", 1, 2));
    -- [{"arr"},{1},{2}]
    
  • JSON_MERGE

    JSON_MERGE(
      	'{"a":3, "b":"3"}',
        '{"c":3, "d":"3"}',
      )
      
      JSON_MERGE(
      	JSON_OBJECT("a", 4, "b", "4"),
        JSON_OBJECT("c", 4, "d", "4")
      )
      
      JSON_MERGE(
      	'{"a":5, "b":"5"}',
        JSON_OBJECT("c", 5, "d", "5")
      )
    

    合并的三种情况

  • JSON_INSERT

    -- 让id=1的f2字段,增加age字段
    UPDATE `t1` SET f2 = JSON_INSERT(f2, '$.age', 10) WHERE id = 1;
    

    向Json中加入新的键值对 "age" = 10 , 若key存在,则不做任何操作

  • JSON_REPLACE

    -- 将id=1的f2字段中,age字段的值替换为9
    UPDATE `t1` SET f2 = JSON_REPLACE(f2, '$.age', 9) WHERE id = 1;
    

    替换Json中的键值对的值, 若key存在, 则不做任何操作

  • JSON_SET

    -- 将id=1的f2字段中,age字段的值设置为8
    UPDATE `t1` SET f2 = JSON_REPLACE(f2, '$.age', 8) WHERE id = 1;
    

    替换,若不存在则加入 , 相当于JSON_REPLACE + JSON_INSERT

  • JSON_REMOVE

    -- 将id=1的f2字段中,age字段移除
    UPDATE `t1` SET f2 = JSON_REMOVE(f2, '$.age') WHERE id = 1;
    

    移除指定字段

  • JSON_CONTAINS

    select * from dept WHERE JSON_CONTAINS(json_value, JSON_OBJECT("deptName","部门5"))
    -- json_value 中是否有字段包含 JSON_OBJECT("deptName","部门5"))
    
  • 其他情况

    -- 一般查询  语法: json对象名->'$.json属性名'
    SELECT * FROM `course_resource` WHERE region->'$.city'='宁波市'
    

标签:f2,处理,age,JSON,json,--,Json,Mysql,id
From: https://blog.51cto.com/u_16207159/6886060

相关文章

  • MySQL-PHP语法
    MySQL可以很好地结合各种编程语言,如PERL、C、C++、JAVA和PHP。在这些语言中,PHP是最受欢迎的一种,因为它具有web应用程序开发功能。本教程主要关注在PHP环境中使用MySQL。如果对使用PERL的MySQL感兴趣,那么可以考虑阅读PERL教程。PHP提供了访问MySQL数据库和操作MySQL数据库中的数据记......
  • 机器学习中的数据预处理指南
    在机器学习任务中,数据处理的相关工作常会占据整个项目近70%的时间,因为真实的数据质量往往具有参差不齐,噪音、缺失、不一致等问题,不利于算法模型的训练。因此,数据处理是机器学习项目中至关重要的一步,数据质量决定着模型质量的上限。在本文中,我们将着重讨论将原始数据转换为结构化......
  • mysql基础架构
    基础架构Mysql基础架构图[1]mysql主要分为Service层和存储引擎一.Service层包含MySQL的大部分功能;请求进入后,到数据提取前的所有操作;包含连接器,查询缓存,分析器,优化器,执行器,还有所有的内置函数(日期,时间,数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程......
  • Android处理图片OOM的若干方法小结
    众所周知,每个Android应用程序在运行时都有一定的内存限制,限制大小一般为16MB或24MB(视平台而定)。因此在开发应用时需要特别关注自身的内存使用量,而一般最耗内存量的资源,一般是图片、音频文件、视频文件等多媒体资源;由于Android系统对音频、视频等资源做了边解析便播放的处理,使用时......
  • JSON.toJSONString将key变成了首字母小写的问题
    在一些请求接口传参时,往往需要把请求参数转为JSON字符串,但JSON.toJSONString会默认将key的首字母变小写的问题importlombok.Data;@Datapublicclasstest{privateLongId;}Testparams=newTest();params.setId(11);JSON.toJSONString(params);System.out.pri......
  • Robot Framework 自动化测试部署常见问题及处理方法(一)
    1.在Python>>Scripts中运行pythonride.py时报错现象:1Traceback(mostrecentcalllast):2File“E:\Python27\lib\site-packages\robotide\application\application.py”,line56,inOnInit3self.frame=RideFrame(self,self._controller)4File“E:\P......
  • 基于 Kubernetes 部署 MySQL 数据库
    本文将介绍如何基于Kubernetes部署MySQL数据库。创建服务Service创建一个Service为即将部署的MySQL数据库固定连接的IP,同时提供负载均衡,下面是mysql-service.yaml文件的内容: yaml复制代码apiVersion:v1kind:Servicemetadata:name:mysqlspec:s......
  • json格式
    {"positive_integer_range":{"url":"http://apis.juhe.cn/simpleWeather/query","method":"get","code_massage":"查询成功","params":{......
  • 异步http响应与异步任务处理
    Golang线程池实现http异步响应参考链接https://www.cnblogs.com/aaronhoo/p/16364492.html使用Gin框架实现异步任务处理功能参考链接https://www.php.cn/faq/564681.html......
  • mysql 中的 having 与 order by 的区别与联系举例说明
    HAVING和ORDERBY都是在查询语句中用于对结果进行排序的子句,但它们的使用场景和作用略有不同。区别:HAVING子句用于在GROUPBY子句后对分组结果进行筛选,只返回满足条件的分组。它通常与聚合函数一起使用,用于筛选分组后的结果集。HAVING子句是在分组后进行筛选,可以使用聚合函数和......