mysql根据json字段内容作为查询条件(包括json数组)检索数据

 更新时间:2022年02月17日 11:12:47   作者:新林。  
本文主要介绍了mysql根据json字段内容作为查询条件(包括json数组)检索数据,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

最近用到了mysql5.7的json字段的检索查询,发现挺好用的,记录一下笔记
我们有一个日志表,里面的data字段是保存不同对象的json数据,遇到想根据里面的json的字段内容作为条件查询的情况

mysql根据json字段的内容检索查询数据

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

在这里插入图片描述

mysql5.7以上支持json的操作,以及增加了json存储类型
一般数据库存储json类型的数据会用json类型或者text类型

注意:用json类型的话
1)JSON列存储的必须是JSON格式数据,否则会报错。
2)JSON数据类型是没有默认值的。

查询根据表字段的json内容进行查询

首先创建表

create table log(
     id int not null,
	 content varchar(255),
	 createTime TIMESTAMP,
	 data text
)

插入几个测试数据

在这里插入图片描述

执行查询sql

使用 字段->’$.json属性’进行查询条件

select * from log where data->'$.id' = 142;

 select data->'$.id' id,data->'$.name' name from log where data->'$.id' = 142;

在这里插入图片描述

测试根据json数组的字段查询

1.再建一个表log2,插入几条json数组数据

[{
		"id": "141",
		"name": "xxx",
		"type": "input"
	},
	  {
		  "id": "142",
		  "name": "xin",
		  "type": "textarea"
	  }
]

在这里插入图片描述

查询json数组里面对象的id等于142的记录

用JSON_CONTAINS(字段,JSON_OBJECT(‘json属性’, “内容”))

select * from log2 where JSON_CONTAINS(data,JSON_OBJECT('id', "142"))

在这里插入图片描述

参考:
Simon格子的MySQL 5.7新增对JSON支持

到此这篇关于mysql根据json字段内容作为查询条件(包括json数组)检索数据的文章就介绍到这了,更多相关mysql json查询内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法

    weblogic服务建立数据源连接测试更新mysql驱动包的问题及解决方法

    WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器,这篇文章主要介绍了weblogic服务建立数据源连接测试更新mysql驱动包,需要的朋友可以参考下
    2022-01-01
  • mySql关于统计数量的SQL查询操作

    mySql关于统计数量的SQL查询操作

    这篇文章主要介绍了mySql关于统计数量的SQL查询操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • mysql 分页优化解析

    mysql 分页优化解析

    似乎讨论分页的人很少,难道大家都沉迷于limit m,n?在有索引的情况下,limit m,n速度足够,可是在复杂条件搜索时,where somthing order by somefield+somefieldmysql会搜遍数据库,找出“所有”符合条件的记录,然后取出m,n条记录。
    2008-04-04
  • MySQL使用正则表达式去检索指定数据库字段

    MySQL使用正则表达式去检索指定数据库字段

    这篇文章主要介绍了MySQL使用正则表达式去检索指定数据库字段,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的小伙伴可以参考一下
    2022-09-09
  • 详解Mysql和Oracle之间的误区

    详解Mysql和Oracle之间的误区

    mysql 和Oracle 在开发中的使用是随处可见的,那就简单去了解一下这俩款火的不行的数据库。
    2021-05-05
  • 简述MySQL InnoDB存储引擎

    简述MySQL InnoDB存储引擎

    这篇文章主要介绍了MySQL InnoDB存储引擎的相关资料,帮助大家更好的了解MySQL的存储引擎,感兴趣的朋友可以了解下
    2020-08-08
  • mysql 8.0.17 安装与使用教程图解

    mysql 8.0.17 安装与使用教程图解

    这篇文章主要介绍了mysql 8.0.17 安装与使用教程图解,本文图文并茂给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-08-08
  • mysql字符切割的四种方式汇总

    mysql字符切割的四种方式汇总

    这篇文章主要介绍了mysql字符切割的四种方式汇总,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01
  • 查看当前mysql使用频繁的sql语句(详解)

    查看当前mysql使用频繁的sql语句(详解)

    下面小编就为大家带来一篇查看当前mysql使用频繁的sql语句(详解)。小编觉的挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 如何修改mysql数据表主键

    如何修改mysql数据表主键

    这篇文章主要介绍了如何修改mysql数据表主键问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07

最新评论