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 ...
随机推荐
- java进程的守护进程脚本
当jar程序执行异常中断时,希望系统能够自动启动.通过以下shell脚本监控程序一直运行. #/bin/bash while true; do count=`ps -ef | grep test.ja ...
- Memcache/Memcached的PHP操作手册(纯手稿版)
Memcache和Memcached 其实是一个东西,只是php中要是用的扩展不一样, 2009年左右有人丰富memcache的用法和性能,编写了一个libmemcached是独立第三方client ...
- android 获取配置文件 相对路径
--src --com.example.Demo1 --IndexActivity.class --test.txt 在IndexActivity.class 获取test.txt中的文件 ...
- Homebrew替换源
https://www.zhihu.com/question/31360766/answer/74155248 以及 https://www.zhihu.com/question/31360766
- linux 将终端进行换行
原始 修改 修改方法 vim .bashrc fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debia ...
- 动态SQL是什么??什么是静态SQL,动态SQL的动态体现在哪里???
首先,所谓SQL的动态和静态,是指SQL语句在何时被编译和执行,二者都是用在SQL嵌入式编程中的,这里所说的嵌入式是指将SQL语句嵌入在高级语言中,而不是针对于单片机的那种嵌入式编程.在某种高级语言中 ...
- 【转】【CentOS】【Python】Centos7安装Python3的方法
由于centos7原本就安装了Python2,而且这个Python2不能被删除,因为有很多系统命令,比如yum都要用到. [root@VM_105_217_centos Python-3.6.2]# ...
- 【转】【Python】Python3爬虫实现自动登录、签到
工具:Fiddler 首先下载安装Fiddler,这个工具是用来监听网络请求,有助于你分析请求链接和参数. 打开目标网站:http://www.17sucai.com/,然后点击登录 好了,先别急着登 ...
- (笔记)AES加密在线计算工具
AES加密在线计算工具: http://aes.online-domain-tools.com/
- Android WiFi 日志记录(ASSOC_REJECT)
记录Android N关联拒绝之后的相关的log. 10-26 20:35:35.844 2215 2215 D wpa_supplicant: * bssid_hint=44:48:c1:d6:57 ...