• 首页 首页 icon
  • 工具库 工具库 icon
    • IP查询 IP查询 icon
  • 内容库 内容库 icon
    • 快讯库 快讯库 icon
    • 精品库 精品库 icon
    • 问答库 问答库 icon
  • 更多 更多 icon
    • 服务条款 服务条款 icon

Mysql-JSON

武飞扬头像
Have_MonkeyG
帮助1

一、根据JSON字段检索内容

语法:

  • 使用 字段->'$.json属性'进行查询条件
  • 使用json_extract函数查询,json_extract(字段,"$.json属性")
  • 根据json数组查询,用JSON_CONTAINS(字段,JSON_OBJECT('json属性', "内容"))

二、检索查询

1.json_contains

判断是否包含某个json值

结果:1或0

1代表包含json值,0代表不包含

eg:-- 查询id值为8的员工的名称是否为scott

select JSON_CONTAINS(info, '{"ename":"SCOTT"}') from tb_emp where id=8

2.json_contains_path

判读某个路径下是否包含json值

结果:1或0

1代表包含,2代表不包含

eg:--查询指定字段中是否包含ename和deptno中的任何一个('one')

select JSON_CONTAINS_PATH(info, 'one','$.ename','$.deptno')

eg:--查询指定字段中是否同时包含ename和deptno('all')

select JSON_CONTAINS_PATH(info, 'all','$.ename','$.deptno') from tb_emp where id=8

3.json_extract

提取json值

eg:--查看所有员工的编号、名称、工作、薪水

(1):-- JSON_EXTRACT(json数据, 可以为单个key以,分割) 提取json的值

select id,ename,JSON_EXTRACT(info, '$.job') as job ,JSON_EXTRACT(info, '$.sal') as sal from tb_emp

 结果:

学新通

(2):-- JSON_EXTRACT(json数据, 多个key) 多个key的结果合并为一列

select id,ename,JSON_EXTRACT(info, '$.job','$.sal') FROM tb_emp 

结果:

学新通

(3):不使用函数:

select id,ename,info->'$.job',info->'$.sal' from tb_emp

 结果:

学新通

  

4.JSON_KEYS()

获取JSON字段中的键数组相当于java中map的keyset()

eg:--获取json字段中所有的key

select JSON_KEYS(info) from tb_emp

结果:

学新通

这篇好文章是转载于:学新通技术网

  • 版权申明: 本站部分内容来自互联网,仅供学习及演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,请提供相关证据及您的身份证明,我们将在收到邮件后48小时内删除。
  • 本站站名: 学新通技术网
  • 本文地址: /boutique/detail/tanhgbhcie
系列文章
更多 icon
同类精品
更多 icon
继续加载