需求描述:

  通过mysql中的json_merge函数,可以将多个json对象合并成一个对象

操作过程:

1.查看一张包含json列的表

  1. mysql> select * from tab_json;
  2. +----+-----------------------------------------------------------------------------------+
  3. | id | data |
  4. +----+-----------------------------------------------------------------------------------+
  5. | 1 | {"Tel": "132223232444", "name": "david", "address": "Beijing"} |
  6. | 2 | {"Tel": "13390989765", "name": "Mike", "address": "Guangzhou"} |
  7. | 3 | {"names": "Smith"} |
  8. | 4 | {"names": "Smith", "address": "Beijing"} |
  9. | 5 | {"names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
  10. | 6 | {"Max": "true", "names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
  11. | 7 | {"max": "true", "names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
  12. | 8 | {"oax": "true", "names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
  13. +----+-----------------------------------------------------------------------------------+
  14. 8 rows in set (0.00 sec)

2.将names的值与address的值进行合并

  1. mysql> select json_extract(data,'$.names'),json_extract(data,'$.address') from tab_json;
  2. +------------------------------+--------------------------------+
  3. | json_extract(data,'$.names') | json_extract(data,'$.address') |
  4. +------------------------------+--------------------------------+
  5. | NULL | "Beijing" |
  6. | NULL | "Guangzhou" |
  7. | "Smith" | NULL |
  8. | "Smith" | "Beijing" |
  9. | "Smith" | "Beijing" |
  10. | "Smith" | "Beijing" |
  11. | "Smith" | "Beijing" |
  12. | "Smith" | "Beijing" |
  13. +------------------------------+--------------------------------+
  14. 8 rows in set (0.00 sec)
  15.  
  16. mysql> select json_merge(json_extract(data,'$.names'),json_extract(data,'$.address')) from tab_json;
  17. +-------------------------------------------------------------------------+
  18. | json_merge(json_extract(data,'$.names'),json_extract(data,'$.address')) |
  19. +-------------------------------------------------------------------------+
  20. | NULL |
  21. | NULL |
  22. | NULL |
  23. | ["Smith", "Beijing"] |
  24. | ["Smith", "Beijing"] |
  25. | ["Smith", "Beijing"] |
  26. | ["Smith", "Beijing"] |
  27. | ["Smith", "Beijing"] |
  28. +-------------------------------------------------------------------------+
  29. 8 rows in set (0.00 sec)

3.如果多个对象含有相同的key,那么也会进行合并为具体的values

  1. mysql> SELECT JSON_MERGE('{"a": 1, "b": 2}', '{"c": 3, "a": 4}');
  2. +----------------------------------------------------+
  3. | JSON_MERGE('{"a": 1, "b": 2}', '{"c": 3, "a": 4}') |
  4. +----------------------------------------------------+
  5. | {"a": [1, 4], "b": 2, "c": 3} |
  6. +----------------------------------------------------+
  7. 1 row in set (0.00 sec)

备注:将两个对象的值合并成一个,a这个key的值也增加到了2个.

文档创建:2018年6月6日17:49:18

mysql中json_merge函数的使用?的更多相关文章

  1. mysql中now()函数的使用,还有oracle的sysdate,可能埋下的坑

    mysql中now()函数的使用,还有oracle的sysdate 在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就 ...

  2. MySQL中concat函数(连接字符串)

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  3. Mysql中的函数

    什么是函数 mysql中的函数与存储过程类似,都是一组SQL集: 与存储过程的区别 函数可以return值,存储过程不能直接return,但是有输出参数可以输出多个返回值: 函数可以嵌入到sql语句中 ...

  4. MySQL中concat函数

    MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...

  5. mysql中INSTR函数的用法

    mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTo ...

  6. MySQL中group_concat函数-和group by配合使用

    MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...

  7. MySQL中时间函数NOW()和SYSDATE()的区别

    mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...

  8. mysql中的函数与存储过程

    mysql中的函数:1 mysql下创建函数: 1.1 语法: delimiter $$ -- 设置分隔符,默认是; 设置成其他符号,让编译器知道我们函数编写的结束,此处设置成$$ create fu ...

  9. MySQL中group_concat函数深入理解

    本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 一.MySQL中group_concat函数 完整的语法如下: gr ...

随机推荐

  1. Java new Date() bug

    往 MongoDB 中 upsert 记录,记录中的一个字段是 Date 类型的,这个字段是我 new Date() 放进去的. 然后落库的时候,发现这个时间比当前时间要晚 1h30min 左右. 我 ...

  2. NLP-训练个model出来写诗

    2018年新年,腾讯整出来个ai春联很吸引眼球,刚好有个需求让我看下能不能训出来个model来写出诗经一样的文风,求助了下小伙伴,直接丢过来2个github,原话是: 查了一下诗经一共38000个字, ...

  3. 将安卓手机短信导入到iPhone6 plus中

    不越狱的情况下短信不能直接同步到iphone手机,视频.图片.联系人可以直接使用itools的手机搬家功能超方便从android到iphone中.短信得变通的处理才能导入. 工具: 安卓手机iPhon ...

  4. mysql ACID与四种隔离级别归纳总结

    关于数据库的ACID特性已经有很多的介绍,这里再重新归纳总结一下:   A(atomicity)原子性: 即事务要么全部做完,要么全部不做,不会出现只做一部分的情形,如A给B转帐,不会出现A的钱少了, ...

  5. WebRTC 学习资源 电子书 WebRTC权威指南 Learning WebRTC

    webRTC源码下载地址:https://pan.baidu.com/s/18CjClvAuz3B9oF33ngbJIw 提取码:wl1e 1.<WebRTC权威指南>第三版 中文版 本书 ...

  6. Java instanceof的进一步理解

    instanceof是Java的一个二元操作符,和==,>,<是同一类东东.由于它是由字母组成的,所以也是Java的保留关键字.它的作用是测试它左边的对象是否是它右边的类的实例,返回boo ...

  7. hibernate整合进spring后的事务处理

    单独使用hibernate处理事务 本来只用hibernate开发,从而可以省了DAO层实现数据库访问和跨数据库,也可以对代码进行更好的封装,当我们web中单独使用hibernate时,我们需要单独的 ...

  8. css小贴士备忘录

    前言:在CSS的学习实践过程中,我经常遗忘一些貌似常用的代码,为了能够强化记忆特在此作归纳整理并将陆续增删,以备即时查阅.但愿今后能遇到问题及时解决,牢牢记住这些奇怪的字符们. 一.关于段落文本强制对 ...

  9. SQL Server默认1433端口修改方法

    SQL Server默认端口1433端口并不是十分的安全,需要将SQL Server默认端口进行更改,在更改之前,让我们先了解一下什么是1433端口. 什么是1433端口 1433端口,是SQL Se ...

  10. Linq“条件排序”

    StockQuantities.OrderBy(u=>u.Status==null) 该排序先排结果为0(false)的,再排结果为1(true)的 使用场景: 一个对象有上传时间(可以为空)和 ...