MySql5.7 json查询
create table t1(name json);
insert into t1 values(’ {
“hello”: “song”,
“num”: 111,
“obj”: { “who”: “me”, “arr”: [ 1, 2, “three” ], “more”:“hey” },
“bool”: true,
“can”: false,
“learning”: null,
“chiness”: “中文”
}' );
mysql> select json_depth(name) from t1;
返回json文本的深度 输出结果----4;
1 rows in set (0.02 sec)
mysql> select json_length(name) from t1;
返回json文本的长度 输出结果----9
1 rows in set (0.01 sec)
mysql> select json_type(name) from t1;
返回json值得类型 输出结果----OBJECT
1 rows in set (0.04 sec)
mysql> SELECT JSON_VALID(‘hello’) a, JSON_VALID(‘“hello”’) b;
判读是否是合法的json类型 返回结果:a:0 b:1
1 row in set (0.00 sec)
mysql> select json_keys(name) as a from t1;
查看存储的json有哪些key 返回结果:array[
'a'=> [“hello”, “link”, “can”, “num”, “bool”, “learning”, “notLink”, “obj”, “chiness”],
]
1 rows in set (0.05 sec)
mysql> select json_keys(name,’obj’) as a from t1;
查看obj有哪些key 返回结果:array['a' =>[“more”,“who”,“arr”]]
5rowsinset(0.00sec)
mysql>select jsonsearch(name,′one′,′me′) as a from t1;
查看第一次出现的位置 返回结果:array['“.obj.who”']
mysql> select json_search(name,’all’,’%aaaaa%’) as a from t1;
查看所有包含aaaaa的位置 返回结果:aaaaa所在的key json_search(name,’all’,’%json%’)
1rows in set (0.00 sec)
mysql> select json_extract(name,’link[]’) as a from t1;
抽取值 返回结果:查找的key所对应的value 如:“http://jsonview.com
1 rows in set (0.00 sec)
mysql> select json_extract(name,’obj[].more[]’) from t1;
抽取值 返回结果同上
1 rows in set (0.00 sec)
或者使用下面的方式
mysql> select name,name->’key2’ from t1;
{“key1”: “value1”, “key2”: “value2”} | “value2” |
mysql> select JSON_ARRAY_APPEND(name,’name’,’xxx’) from t1;
追加记录 在指定的json字段追加key-value 参数(字段名,key,value)
mysql> select JSON_REMOVE(name,’name’) from t1;
删除json数据 参数(字段名,key)
mysql> select JSON_set(name,’name’,’ooo’) from t1;
有就替换,没有就insert
mysql> SELECT JSON_UNQUOTE(JSON_EXTRACT(name, ‘name’)) AS name from t1;
查询结果去掉双引号 返回字段name中的key为name的集合,没有“”
因为 JSON 不同于字符串,所以如果用字符串和 JSON 字段比较,是不会相等的可以通过
where key->'$.value'的形式去查询 ->和->>结果等效
最新文章
- 信号量sem
- 前端学习 第二弹: JavaScript中的一些函数与对象(1)
- 又是一周-AJAX(三)
- 欧洲用户放弃Android转投iOS原因大起底
- Edius 安装 looks插件整理
- mysql shell 备份脚本
- 大话设计模式之策略模式(strategy)
- Guava Collect
- SQL Server AlwaysON 同步模式的疑似陷阱
- linux学习笔记----文件与目录管理
- springMvc <;form action=";";>;提交跳转路径问题
- IO (一)
- iOS中类单例方法的一种实现
- 安卓TV开发(概述) 智能电视之视觉设计和体验分析
- if __name__ == &#39;__main__&#39;:用法
- 为Ubuntu新创建用户创建默认.bashrc并自动加载
- HoloLens开发手记 - 使用混合现实捕捉 Using mixed reality capture
- elasticsearch版本控制及mapping映射属性介绍
- activemq 生产消费模式,订阅发布模式不同类型数据传输
- 学习docker后的个人理解
热门文章
- linux 运维基本操作
- error: &#39;for&#39; loop initial declaration used outside C99 mode的解决方法
- mysql优化查找执行慢的sql
- go - helloword
- js获取数组中的最大值/最小值
- UDP丢包原因总结
- vs2017+qt5.x编译32位应用<;转>;
- Weblogic部署web项目代码中获取项目名为null的问题
- SQLServer : 找中间日期
- win10下通过编译源码方式在chrome中成功安装react-devtools开发工具插件