mysql中json_merge函数的使用?
需求描述:
通过mysql中的json_merge函数,可以将多个json对象合并成一个对象
操作过程:
1.查看一张包含json列的表
mysql> select * from tab_json;
+----+-----------------------------------------------------------------------------------+
| id | data |
+----+-----------------------------------------------------------------------------------+
| 1 | {"Tel": "132223232444", "name": "david", "address": "Beijing"} |
| 2 | {"Tel": "13390989765", "name": "Mike", "address": "Guangzhou"} |
| 3 | {"names": "Smith"} |
| 4 | {"names": "Smith", "address": "Beijing"} |
| 5 | {"names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
| 6 | {"Max": "true", "names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
| 7 | {"max": "true", "names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
| 8 | {"oax": "true", "names": "Smith", "address": "Beijing", "birthday": "2018-09-09"} |
+----+-----------------------------------------------------------------------------------+
8 rows in set (0.00 sec)
2.将names的值与address的值进行合并
mysql> select json_extract(data,'$.names'),json_extract(data,'$.address') from tab_json;
+------------------------------+--------------------------------+
| json_extract(data,'$.names') | json_extract(data,'$.address') |
+------------------------------+--------------------------------+
| NULL | "Beijing" |
| NULL | "Guangzhou" |
| "Smith" | NULL |
| "Smith" | "Beijing" |
| "Smith" | "Beijing" |
| "Smith" | "Beijing" |
| "Smith" | "Beijing" |
| "Smith" | "Beijing" |
+------------------------------+--------------------------------+
8 rows in set (0.00 sec) mysql> select json_merge(json_extract(data,'$.names'),json_extract(data,'$.address')) from tab_json;
+-------------------------------------------------------------------------+
| json_merge(json_extract(data,'$.names'),json_extract(data,'$.address')) |
+-------------------------------------------------------------------------+
| NULL |
| NULL |
| NULL |
| ["Smith", "Beijing"] |
| ["Smith", "Beijing"] |
| ["Smith", "Beijing"] |
| ["Smith", "Beijing"] |
| ["Smith", "Beijing"] |
+-------------------------------------------------------------------------+
8 rows in set (0.00 sec)
3.如果多个对象含有相同的key,那么也会进行合并为具体的values
mysql> SELECT JSON_MERGE('{"a": 1, "b": 2}', '{"c": 3, "a": 4}');
+----------------------------------------------------+
| JSON_MERGE('{"a": 1, "b": 2}', '{"c": 3, "a": 4}') |
+----------------------------------------------------+
| {"a": [1, 4], "b": 2, "c": 3} |
+----------------------------------------------------+
1 row in set (0.00 sec)
备注:将两个对象的值合并成一个,a这个key的值也增加到了2个.
文档创建:2018年6月6日17:49:18
mysql中json_merge函数的使用?的更多相关文章
- mysql中now()函数的使用,还有oracle的sysdate,可能埋下的坑
mysql中now()函数的使用,还有oracle的sysdate 在需求中如果系统中药添加当前操作的时间那么很简单的一个操作在写sql的时候直接在这个字段对应的位置写上now()函数就可以了,这样就 ...
- MySQL中concat函数(连接字符串)
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...
- Mysql中的函数
什么是函数 mysql中的函数与存储过程类似,都是一组SQL集: 与存储过程的区别 函数可以return值,存储过程不能直接return,但是有输出参数可以输出多个返回值: 函数可以嵌入到sql语句中 ...
- MySQL中concat函数
MySQL中concat函数使用方法:CONCAT(str1,str2,…) 返回结果为连接参数产生的字符串.如有任何一个参数为NULL ,则返回值为 NULL. 注意:如果所有参数均为非二进制字符串 ...
- mysql中INSTR函数的用法
mysql中INSTR函数的用法 INSTR(字段名, 字符串) 这个函数返回字符串在某一个字段的内容中的位置, 没有找到字符串返回0,否则返回位置(从1开始) SELECT * FROM tblTo ...
- MySQL中group_concat函数-和group by配合使用
MySQL中group_concat函数 完整的语法如下: group_concat([DISTINCT] 要连接的字段 [Order BY ASC/DESC 排序字段] [Separator '分隔 ...
- MySQL中时间函数NOW()和SYSDATE()的区别
mysql中日期函数还是比较常用的.主要有NOW()和SYSDATE()两种,虽然都表示当前时间,但使用上有一点点区别. NOW()取的是语句开始执行的时间,SYSDATE()取的是动态的实时时间. ...
- mysql中的函数与存储过程
mysql中的函数:1 mysql下创建函数: 1.1 语法: delimiter $$ -- 设置分隔符,默认是; 设置成其他符号,让编译器知道我们函数编写的结束,此处设置成$$ create fu ...
- MySQL中group_concat函数深入理解
本文通过实例介绍了MySQL中的group_concat函数的使用方法,比如select group_concat(name) . 一.MySQL中group_concat函数 完整的语法如下: gr ...
随机推荐
- velocity单引号与双引号
(1)最外层是用单引号包围时,双引号直接使用就可以了,两个连续的单引号表示一个单引号:#set($var2 = 'A"B''C') --> $var2 的值为 A"B'C(2 ...
- textmate常用快捷键备忘
视图切换 Ctrl + Cmd + F # 折叠第三层 代码编辑 Cmd + Shift + V # 按照历史拷贝顺序来粘贴 Ctrl + Cmd + Option + V # 显示剪贴板 Cmd + ...
- [算法]谷歌笔试题:Beautiful Numbers
题目描述 思路 这道题就是在说,由多个1组成的数是beautiful的,现在想求出r进制中的r,使得给出的数字转换成r进制,得到beautiful的数字,如果有多种方式转换,那么取1的个数最多的那种情 ...
- js 的数值限制可能引起的问题
源于:https://raw.github.com/ruanyf/jstutorial/gh-pages/grammar/number.md 1. 根据国际标准IEEE 754,64位浮点数格式的64 ...
- Redis的内存回收机制
Redis的内存回收机制 2018年01月16日 17:11:48 chs007chs 阅读数:1172 Redis的内存回收机制主要体现在一下两个方面: 删除过期时间的键对象 删除过期键对象 : ...
- mysql reset password重置密码
安全模式启动 chown -R mysql.mysql /var/run/mysqld/ mysqld_safe --skip-grant-tables & 无密码root帐号登陆 mysql ...
- CRNA的使用
为了能让更多人感受 RN 的魅力,早在几个月前 React-community 就给出了一个不错的解决方案,可以让一个完全没接触过 RN 的人,从配环境开始5分钟实现 Hello Wolrd 的编写( ...
- 路由策略和策略路由 & route-map
今天,这个专题应用下route-map,在这个之前,有很多内容需要掌握,不是简单的制定一个路由图就可以了. -------- 本次专题理论的东西居多,但是不是复制黏贴,是加上自己的理解思想. 第一个要 ...
- Mac下安装Pyqt
1.安装sip brew install sip 2.安装pyqt brew install pyqt
- MFC绘图基础——上机操作步骤
一.上机之前的介绍 软件环境:VC++6.0 目的:熟悉基本的MFC框架搭建和了解界面 二.MFC上机操作步骤 1,在Windows桌面上运行VC++6.0. 2,新建项目工程文件. 3,在MFC 应 ...