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 ...
随机推荐
- <孤独者生存(小小辛巴投资手记)>读书笔记
书在这里 让投机客梦醒的办法就是让资产损失至少一半 天不会塌下来,世界末日也不会这么快就降临,经济也许会萧条但不会崩溃,人们还得穿衣吃饭.休息劳作 每个笨蛋都会从自己的错误中吸取教训,聪明的人则从别人 ...
- 搭建自己的挂Q平台
准备工作: 在前篇[分享]免费建立自己的站点里面介绍了怎么申请免费域名和空间. 在这里[随记]Q号解除限制一波三折有我被挂Q工具坑苦的经历. 在网上(出处不明了,下载的包太多,非CSDN)下载到的免费 ...
- android开发(34) 自定义 listView的分割线( 使用xml drawable画多条线)
我遇到这样一个场景,我需要自定义 listView的分割线,而这个分割线是由两条线组成的,在使用xml drawable时遇到了困难. 注释:画两条线是为了实现 凹陷的效果,在绘图中一条暗线紧跟着一条 ...
- 根据城市表生成json数据
T_CityManager am = new T_CityManager(); string tou = "var LAreaData=["; string value = &qu ...
- Redis 学习笔记1
配置文件: 根据配置文件打开服务器: redis-server redis.conf --port 6370 redis-cli -localhost -p 6370 动态设置/获取配置选项的值 CO ...
- 关于socket的知识总结
简单点说: 阻塞就是干不完不准回来, 非组赛就是你先干,我现看看有其他事没有,完了告诉我一声 我们拿最常用的send和recv两个函数来说吧... 比如你调用send函数发送一定的Byte,在系 ...
- lapacke svd实例
参考 intel MTK实例 https://software.intel.com/sites/products/documentation/doclib/mkl_sa/11/mkl_lapack_e ...
- qualcomm sdm450 tinymix mic record
最近需要使用tinymix配置主MIC和副MIC进行录音,一般副MIC都是拿来降噪用的.记录一下副MIC录音的方法. 没有找到高通的音频通路图,只能通过logcat,查看audio_route,然后找 ...
- 近期小结 之 Servlet规范及HTTP
最近认真看了下Servlet 3.1的规范,略有收获,如下: 如果客户端不指定编码,Servlet容器必须使用ISO-8859-1编码来处理,且不能添加相应编码信息. Servlet 3 可以手动开启 ...
- e742. 加入标签的可拖动能力
This example demonstrates how to modify a label component so that its text can be dragged and droppe ...