iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >mysql根据json字段内容作为查询条件(包括json数组)检索数据
  • 291
分享到

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

2024-04-02 19:04:59 291人浏览 安东尼
摘要

最近用到了Mysql5.7的JSON字段的检索查询,发现挺好用的,记录一下笔记我们有一个日志表,里面的data字段是保存不同对象的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查询内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

您可能感兴趣的文档:

--结束END--

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

本文链接: https://www.lsjlt.com/news/139529.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作