Mysql-JSON

这篇具有很好参考价值的文章主要介绍了Mysql-JSON。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、根据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

 结果:

Mysql-JSON

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

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

结果:

Mysql-JSON

(3):不使用函数:

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

 结果:

Mysql-JSON

  

4.JSON_KEYS()

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

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

select JSON_KEYS(info) from tb_emp

结果:

Mysql-JSON

 文章来源地址https://www.toymoban.com/news/detail-430942.html

到了这里,关于Mysql-JSON的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【MySQL】根据多个字段查询数据进行去重的sql编写

    一、实现思路 根据四个字段进行数据去重的SQL编写可以使用GROUP BY和HAVING子句来实现。 场景一: 假设有一个名为 table1 的数据表,其中包含四个字段: field1 、 field2 、 field3 和 field4 。要求根据这四个字段进行数据去重。 可以使用以下SQL语句: 场景二: 上述SQL语句会返回所

    2024年02月15日
    浏览(37)
  • mysql处理json格式的字段,一文搞懂mysql解析json数据

    略。自行百度。 JSON 数据类型是 MySQL 5.7.8 开始支持的。在此之前,只能通过字符类型(CHAR,VARCHAR 或 TEXT )来保存 JSON 文档。 MySQL 8.0版本中增加了对JSON类型的索引支持。可以使用CREATE INDEX语句创建JSON类型的索引,提高JSON类型数据的查询效率。 存储JSON文档所需的空间与存储

    2024年02月07日
    浏览(35)
  • mysql中json类型字段用法

    前言 mysql从5.7.8版本开始原生支持了JSON类型数据,同时可以对JSON类型字段中的特定的值进行查询和更新等操作,通过增加JSON类型的属性可以大大的提高我们在mysql表中存储的数据的拓展性,无需每次新增字段时都进行表结构的调整,下面我们不深入讲解底层的实现原理,我们

    2024年02月04日
    浏览(48)
  • MySql Update修改(替换)某个字段中包含的某个值,根据条件修改替换某个字段的一部分值

    背景: 由于数据迁移和域名变更,Mysql中存储的文件下载地址变更; 要替换某一个字段中的部分内容,可以用update 语句和REPLACE方法,结构如下: UPDATE 表名 SET 字段名= REPLACE( 需要替换值的字段名, \\\'替换前\\\', \\\'替换后\\\' ) WHERE 字段名 REGEXP \\\"替换前的字段值\\\"; MySql U

    2024年02月05日
    浏览(32)
  • mysql 使用JSON_EXTRACT提取 json数据格式的字段

    task 表中有如下数据结构 id data_ext 1 {“name”: “张三”,“gender”: 1,“age”: 20} 提取data_ext字段 JSON_EXTRACT:提取字段。 JSON_UNQUOTE:去掉双引号。 cast :转换字符显示。 《MySQL JSON_EXTRACT()、JSON_UNQUOTE() 函数获取JSON串的值》:https://blog.csdn.net/TM_enn/article/details/125786948

    2024年02月16日
    浏览(29)
  • mysql 字段类型为json,后端用list接收

    board` json DEFAULT NULL COMMENT \\\'信息,格式[{\\\"name\\\":\\\"net\\\",\\\"chip\\\":\\\"esp32\\\",\\\"hdVer\\\":1}]\\\' resultMap id=\\\"productDeviceAndBrand\\\" type=\\\"com.charg.product.domain.vo.ProductDeviceOperationsVo\\\" result property=\\\"brandId\\\" column=\\\"brand_id\\\"/ result property=\\\"brandName\\\" column=\\\"brand_name\\\"/ result property=\\\"productName\\\" column=\\\"product_name\\\"/ result property=\\\"productC

    2024年04月09日
    浏览(31)
  • Mybatis-Plus处理Mysql Json类型字段

    Mysql 5.7.8开始支持Json对象和Json数组,但在Mysql 8版本中使用Json性能更佳。 使用Json格式的好处: 无须预定义字段:字段可以无限拓展,避免了ALTER ADD COLUMN的操作,使用更加灵活。 处理稀疏字段:避免了稀疏字段的NULL值,避免冗余存储。 支持索引:相比于字符串格式的JSON,

    2024年02月03日
    浏览(40)
  • Mysql为json字段创建索引的两种方式

    JSON 数据类型是在 mysql5.7 版本后新增的,同 TEXT,BLOB 字段一样,JSON 字段不允许直接创建索引。即使支持,实际意义也不大,因为我们一般是基于文档中的元素进行查询,很少会基于整个 JSON 文档。基于此问题,在 MySQL 8.0.17 及以后的版本中,InnoDB存储引擎支持JSON数组上的

    2024年02月12日
    浏览(34)
  • Springboot引入mybatis-plus及操作mysql的json字段

    springboot引入mybatis-plus,创建springboot项目省略 pom文件 配置文件 备注信息 springboot使用mybatis和mybatis-plus没有什么区别,需要注意的是配置文件跟配置名:mybatis-plus 使用mybatis-plus的有点在于,在mybatis的基础上记性了一系列的有效封装,节约了开发时间,有这方面兴趣额同学自行

    2024年02月06日
    浏览(40)
  • LINUX根据时间范围检索文件

    1.查找2023-01-05到2023-01-06号之间的文件,使用如下命令即可: 2.找出 3 天”以前”被改动过的文件 72小时之前 3.找出 3 天內被改动过的文件 (0 ~ 72 小时內) 4.找出前第 3 天被改动过的文件 (72 ~ 96 小时) 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使

    2024年02月12日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包