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相关推荐

  1. MySQL Create JSON Values

    方法 描述 JSON_ARRAY([val[, val] ...]) JSON_OBJECT([key, val[, key, val] ...]) JSON_QUOTE(string) 1.JSON ...

  2. MySQl Modify JSON Values

    方法 描述 JSON_ARRAY_APPEND(json_doc, path, val[, path, val] ...) JSON_ARRAY_INSERT(json_doc, path, val[ ...

  3. mysql讀取sql_MySQL数据库之python json及mysql读取json文件存sql等问题

    本文主要向大家介绍了MySQL数据库之python json及mysql读取json文件存sql等问题 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助. preface: 近期帮师 ...

  4. mysql的json函数与实例_Mysql实例详解Mysql中的JSON系列操作函数

    <Mysql实例详解Mysql中的JSON系列操作函数>要点: 本文介绍了Mysql实例详解Mysql中的JSON系列操作函数,希望对您有用.如果有疑问,可以联系我们. MYSQL必读前言 ...

  5. MySql中json类型的使用___mybatis存取mysql中的json

    MySql中json类型的使用 MySQL从5.7.8起开始支持JSON字段,这极大的丰富了MySQL的数据类型.也方便了广大开发人员.但MySQL并没有提供对JSON对象中的字段进行索引的功能,至少 ...

  6. MySQL中 JSON 数据类型应用

    前言 今天接触到mysql中json数据类型,之前不知道有这个类型,今天学习一下. JSON我相信大家都已经很熟悉了,但在 MySQL中,直至 5.7 版本中,才正式引入 JSON数据类型.在次之前, ...

  7. mysql varchar json_谈谈 MySQL 的 JSON 数据类型

    MySQL 5.7 增加了 JSON 数据类型的支持,在之前如果要存储 JSON 类型的数据的话我们只能自己做 JSON.stringify() 和 JSON.parse() 的操作,而且没办法针对 ...

  8. 五、Mysql中JSON类型

    文章目录 JSON类型 JSON入门 JSON 函数 JSON_OBJECT 将对象转为 json json_insert 插入数据 json_merge 合并数据并返回 其他函数: JSON 索引 ...

  9. MySQL操作JSON

    MySQL操作JSON 总所周知,mysql5.7以上提供了一种新的字段格式-json,大概是mysql想把非关系型和关系型数据库一口通吃,所以推出了这种非常好用的格式,这样,我们的很多基于mongo ...

最新文章

  1. 【IOS】ios之httpServer
  2. Method threw 'java.lang.StackOverflowError' exception. Cannot evaluate 问题
  3. linux mysql 分区_Linux :linux磁盘分区(普通分区2T以内),安装免安装版mysql(tar.gz)...
  4. springcloud 系列教程一:微服务与网站架构演变过程
  5. h:commandButton
  6. java检测文件修改_Java 实例 – 查看主机指定文件的最后修改时间
  7. whitepages 爬取_运营笔记:是时候了解蜘蛛爬取原理了!揭秘收录难题!
  8. .net Core 2.*使用autofac注入
  9. Mr Youngs Picture Permutations 题解报告
  10. 利用函数指针实现累加
  11. 网络安全中常见攻击方式(SQL注入、XSS攻击、CSRF攻击、网页木马、文件包含漏洞攻击、目录遍历攻击、CC攻击、DOS攻击)
  12. php实现酒店客房管理系统,基于ssh/jsp/java/asp.net/php的酒店客房管理系统
  13. 帅帅什么意思_帅帅帅是什么意思
  14. 绘制中国象棋棋盘 - CSS Pseudo Elements 的使用
  15. MapReduce: Simplified Data Processing on Large Clusters 翻译加理解
  16. huffman树【严蔚敏】
  17. ZeroMQ教程中文版
  18. 极智AI | 一文看懂昇腾达芬奇架构计算单元
  19. 每日新闻:Gartner报告:这五大新兴科技趋势将模糊人机界限;阿里云肖力:阿里云安全三大“核驱动: 可信、智能、合规...
  20. arduino红外对管

热门文章

  1. 查看nginx版本_2:快速搭建Nginx
  2. python的开发者是谁_谁才是真正的资深开发者?
  3. Python高并发应用场景下四种写入SQLite数据库的速度比较
  4. python下载以后在哪找_Python下载要保存到哪
  5. github怎么隐藏自己的pr记录_在GitHub中向开源框架提交PR的过程
  6. python连接数据库步骤_Python连接mysql数据库
  7. linux如何自动处理文件,linux文件处理
  8. xpath修复html错误,【python】xpath解析html文件报错:lxml.etree.XPathEvalError: Invalid expression...
  9. linux 7 network fail,CentOs7 网卡出现问题Job for network.service failed
  10. 15数字华容道解法 图解_密不外传的点穴秘技:15个穴位的取穴、点法、解法(上)...