MySQl Search JSON Values
SET @var_name = expr [, @var_name = expr]
set @j
就是对@j进行赋值
$
符是当前json对象的意思
方法 | 描述 |
---|---|
JSON_CONTAINS(target, candidate[, path])
|
|
JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...)
|
|
JSON_EXTRACT(json_doc, path[, path] ...)
|
|
JSON_KEYS(json_doc[, path])
|
|
JSON_OVERLAPS(json_doc1, json_doc2)
|
|
JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
|
|
alue MEMBER OF(json_array)
|
1JSON_CONTAINS(target, candidate[, path])
判断target的key 的value 是否为candidate
SET @j = '{"a": 1, "b": 2, "c": {"d": 4}}';
SET @j2 = '1'; --用来测试包含字符
SELECT JSON_CONTAINS(@j, @j2, '$.a'); -- 1 //@j中键a,包含@j2
SELECT JSON_CONTAINS(@j, @j2, '$.b'); -- 0 //@j中键B,不包含@j2SET @j2 = '{"d": 4}'; -- 用来验证包含字典结构
SELECT JSON_CONTAINS(@j, @j2, '$.a'); -- 0 //@j中键a,包含@j2
SELECT JSON_CONTAINS(@j, @j2, '$.c'); -- 1 //@j中键B,不包含@j2
2.JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...)
判断json_doc是否包含指定节点
SET @j = '{"a": 1, "b": 2, "c": {"d": 4}}';
SELECT JSON_CONTAINS_PATH(@j, 'one', '$.a', '$.e'); -- 1 //
SELECT JSON_CONTAINS_PATH(@j, 'all', '$.a', '$.e'); -- 0
SELECT JSON_CONTAINS_PATH(@j, 'one', '$.c.d'); -- 1
SELECT JSON_CONTAINS_PATH(@j, 'one', '$.a.d'); -- 0
3.JSON_EXTRACT(json_doc, path[, path] ...)
取json的某个位置上的元素
SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]'); -- 20
SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[1]', '$[0]'); -- [20, 10]
SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[2][*]'); -- [30, 40]
->
是JSON_EXTRACT
的简写
mysql> SELECT c, JSON_EXTRACT(c, "$.id"), g> FROM jemp> WHERE JSON_EXTRACT(c, "$.id") > 1> ORDER BY JSON_EXTRACT(c, "$.name");
+-------------------------------+-----------+------+
| c | c->"$.id" | g |
+-------------------------------+-----------+------+
| {"id": "3", "name": "Barney"} | "3" | 3 |
| {"id": "4", "name": "Betty"} | "4" | 4 |
| {"id": "2", "name": "Wilma"} | "2" | 2 |
+-------------------------------+-----------+------+
3 rows in set (0.00 sec)mysql> SELECT c, c->"$.id", g> FROM jemp> WHERE c->"$.id" > 1> ORDER BY c->"$.name";
+-------------------------------+-----------+------+
| c | c->"$.id" | g |
+-------------------------------+-----------+------+
| {"id": "3", "name": "Barney"} | "3" | 3 |
| {"id": "4", "name": "Betty"} | "4" | 4 |
| {"id": "2", "name": "Wilma"} | "2" | 2 |
+-------------------------------+-----------+------+
3 rows in set (0.00 sec)
column->>path
此三个函数是等价的
JSON_UNQUOTE( JSON_EXTRACT(column, path) )
JSON_UNQUOTE(column -> path)
column->>path
4.JSON_KEYS(json_doc[, path])
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}'); -- ["a", "b"]
SELECT JSON_KEYS('{"a": 1, "b": {"c": 30}}', '$.b'); -- ["c"]
5.JSON_OVERLAPS(json_doc1, json_doc2)
两个json中是否有相容的元素
SELECT JSON_OVERLAPS("[1,3,5,7]", "[2,5,7]"); -- 1
SELECT JSON_OVERLAPS("[1,3,5,7]", "[2,6,7]"); -- 1
SELECT JSON_OVERLAPS("[1,3,5,7]", "[2,6,8]"); -- 0
6.JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])
查询指定值的位置
SET @j = '["abc", [{"k": "10"}, "def"], {"x":"abc"}, {"y":"bcd"}]';
SELECT JSON_SEARCH(@j, 'one', 'abc'); -- "$[0]"
SELECT JSON_SEARCH(@j, 'all', 'abc'); -- ["$[0]", "$[2].x"]
SELECT JSON_SEARCH(@j, 'all', 'ghi'); -- NULL
SELECT JSON_SEARCH(@j, 'all', '10'); -- "$[1][0].k"
SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$'); -- "$[1][0].k"
SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$[*]'); -- "$[1][0].k"
SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$**.k'); -- "$[1][0].k"
SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$[*][0].k'); -- "$[1][0].k"
SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$[1]'); -- "$[1][0].k"
SELECT JSON_SEARCH(@j, 'all', '10', NULL, '$[1][0]'); -- "$[1][0].k"
SELECT JSON_SEARCH(@j, 'all', 'abc', NULL, '$[2]'); -- "$[2].x"
SELECT JSON_SEARCH(@j, 'all', '%a%'); -- ["$[0]", "$[2].x"]
SELECT JSON_SEARCH(@j, 'all', '%b%'); -- ["$[0]", "$[2].x", "$[3].y"]
SELECT JSON_SEARCH(@j, 'all', '%b%', NULL, '$[0]'); -- "$[0]"
SELECT JSON_SEARCH(@j, 'all', '%b%', NULL, '$[2]'); -- "$[2].x"
SELECT JSON_SEARCH(@j, 'all', '%b%', NULL, '$[1]'); -- NULL
SELECT JSON_SEARCH(@j, 'all', '%b%', '', '$[1]'); -- NULL
SELECT JSON_SEARCH(@j, 'all', '%b%', '', '$[3]'); -- "$[3].y"
7.alue MEMBER OF(json_array)
查询一个值是否在json列表
SELECT 17 MEMBER OF('[23, "abc", 17, "ab", 10]'); -- 1
SELECT 7 MEMBER OF('[23, "abc", 17, "ab", 10]'); -- 0
参考:
https://dev.mysql.com/doc/refman/8.0/en/json-search-functions.html
MySQl Search JSON Values相关推荐
- MySQL Create JSON Values
方法 描述 JSON_ARRAY([val[, val] ...]) JSON_OBJECT([key, val[, key, val] ...]) JSON_QUOTE(string) 1.JSON ...
- MySQl Modify JSON Values
方法 描述 JSON_ARRAY_APPEND(json_doc, path, val[, path, val] ...) JSON_ARRAY_INSERT(json_doc, path, val[ ...
- mysql讀取sql_MySQL数据库之python json及mysql读取json文件存sql等问题
本文主要向大家介绍了MySQL数据库之python json及mysql读取json文件存sql等问题 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. preface: 近期帮师 ...
- mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数
<Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...
- MySql中json类型的使用___mybatis存取mysql中的json
MySql中json类型的使用 MySQL从5.7.8起开始支持JSON字段,这极大的丰富了MySQL的数据类型.也方便了广大开发人员.但MySQL并没有提供对JSON对象中的字段进行索引的功能,至少 ...
- MySQL中 JSON 数据类型应用
前言 今天接触到mysql中json数据类型,之前不知道有这个类型,今天学习一下. JSON我相信大家都已经很熟悉了,但在 MySQL中,直至 5.7 版本中,才正式引入 JSON数据类型.在次之前, ...
- mysql varchar json_谈谈 MySQL 的 JSON 数据类型
MySQL 5.7 增加了 JSON 数据类型的支持,在之前如果要存储 JSON 类型的数据的话我们只能自己做 JSON.stringify() 和 JSON.parse() 的操作,而且没办法针对 ...
- 五、Mysql中JSON类型
文章目录 JSON类型 JSON入门 JSON 函数 JSON_OBJECT 将对象转为 json json_insert 插入数据 json_merge 合并数据并返回 其他函数: JSON 索引 ...
- MySQL操作JSON
MySQL操作JSON 总所周知,mysql5.7以上提供了一种新的字段格式-json,大概是mysql想把非关系型和关系型数据库一口通吃,所以推出了这种非常好用的格式,这样,我们的很多基于mongo ...
最新文章
- 【IOS】ios之httpServer
- Method threw 'java.lang.StackOverflowError' exception. Cannot evaluate 问题
- linux mysql 分区_Linux :linux磁盘分区(普通分区2T以内),安装免安装版mysql(tar.gz)...
- springcloud 系列教程一:微服务与网站架构演变过程
- h:commandButton
- java检测文件修改_Java 实例 – 查看主机指定文件的最后修改时间
- whitepages 爬取_运营笔记:是时候了解蜘蛛爬取原理了!揭秘收录难题!
- .net Core 2.*使用autofac注入
- Mr Youngs Picture Permutations 题解报告
- 利用函数指针实现累加
- 网络安全中常见攻击方式(SQL注入、XSS攻击、CSRF攻击、网页木马、文件包含漏洞攻击、目录遍历攻击、CC攻击、DOS攻击)
- php实现酒店客房管理系统,基于ssh/jsp/java/asp.net/php的酒店客房管理系统
- 帅帅什么意思_帅帅帅是什么意思
- 绘制中国象棋棋盘 - CSS Pseudo Elements 的使用
- MapReduce: Simplified Data Processing on Large Clusters 翻译加理解
- huffman树【严蔚敏】
- ZeroMQ教程中文版
- 极智AI | 一文看懂昇腾达芬奇架构计算单元
- 每日新闻:Gartner报告:这五大新兴科技趋势将模糊人机界限;阿里云肖力:阿里云安全三大“核驱动: 可信、智能、合规...
- arduino红外对管
热门文章
- 查看nginx版本_2:快速搭建Nginx
- python的开发者是谁_谁才是真正的资深开发者?
- Python高并发应用场景下四种写入SQLite数据库的速度比较
- python下载以后在哪找_Python下载要保存到哪
- github怎么隐藏自己的pr记录_在GitHub中向开源框架提交PR的过程
- python连接数据库步骤_Python连接mysql数据库
- linux如何自动处理文件,linux文件处理
- xpath修复html错误,【python】xpath解析html文件报错:lxml.etree.XPathEvalError: Invalid expression...
- linux 7 network fail,CentOs7 网卡出现问题Job for network.service failed
- 15数字华容道解法 图解_密不外传的点穴秘技:15个穴位的取穴、点法、解法(上)...