我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Mysql中json类型数据查询

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Mysql中json类型数据查询

        mysql在5.7版本之后就开始支持json数据类型,并且mysql8.0版本对json的处理已经做的非常完善了。json数据类型的优点缺点可自己查询,本文主要介绍一些关于json数据类型的查询操作。

下面用这个表来执行查询演示:

CREATE TABLE `users` (  `id` int unsigned NOT NULL AUTO_INCREMENT,  `name` varchar(255) NOT NULL COMMENT '姓名',  `address` json NOT NULL COMMENT '住址',  PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;

插入几条数据

INSERT INTO `users` VALUES (1, '张三', '{\"city\": \"石家庄市\", \"tags\": [\"家\", \"公司\"], \"district\": \"桥西区\", \"province\": \"河北省\"}');INSERT INTO `users` VALUES (2, '李四', '{\"city\": \"广州市\", \"tags\": [\"宿舍\"], \"district\": \"珠海区\", \"province\": \"广州省\"}');INSERT INTO `users` VALUES (3, '王五', '{\"city\": \"长春市\", \"district\": \"绿园区\", \"province\": \"吉林省\"}');INSERT INTO `users` VALUES (4, '刘六', '{\"city\": \"昌平区\", \"province\": \"北京市\"}');INSERT INTO `users` VALUES (5, '张三三', '[{\"city\": \"石家庄市\", \"tags\": [\"家\", \"公司\", \"学校\"], \"district\": \"桥西区\", \"province\": \"河北省\"}, {\"city\": \"郑州市\", \"tags\": [\"宿舍\"], \"district\": \"桥东区\", \"province\": \"河南省\"}]');INSERT INTO `users` VALUES (6, '李四四', '[{\"city\": \"广州市\", \"tags\": [\"宿舍\"], \"district\": \"珠海区\", \"province\": \"广州省\"}, {\"city\": \"广州市\", \"district\": \"珠海区\", \"province\": \"广州省\"}]');INSERT INTO `users` VALUES (7, '王五六', '[\"家\", \"公司\", \"学校\"]');

查询json对象指定属性值的数据

函数查询:json_extract(json字段, '$.json属性')

select * from users where json_extract(address, '$.province') = "河北省";

对象操作方法进行查询:json字段->'$.json属性'

select * from users where address->'$.province' = "河北省";

查询json数组指定下标值的数据

数组操作方式查询:字段->'$[0]'

select  * from users where address->'$[0]'= "家";

 根据JSON对象里面的属性个数查询

函数查询:json_length(json字段)

select * from users where json_length(address) = 2;

 根据JSON数组里面的数组长度查询

函数查询:json_length(json字段)

select * from users where json_length(address) = 2;

根据JSON对象属性值为数组的数组长度查询

函数查询:json_length(json字段, '$.json属性')

#获取addresss里面tags数组长度为2的数据select * from users where json_length(address, '$.tags') = 2;

 查询JSON对象属性值为数组的任意项存在指定值查询

函数查询:JSON_CONTAINS(json字段,JSON_OBJECT('json数组属性', '内容'))

select * from users where JSON_CONTAINS(address,JSON_OBJECT('tags', '家'));

 查询JSON数组里面对象属性任意项存在指定属性的数据

select * from users where address->'$[*].city' is not null;

 查询JSON对象存在指定属性的数据

select * from users where address->'$.tags' is not null;

来源地址:https://blog.csdn.net/minshiwang/article/details/130769571

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Mysql中json类型数据查询

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

下载Word文档

猜你喜欢

Mysql中json类型查询

Mysql中json类型查询 MySQL提供了一些函数和操作符,用于在JSON数据类型中进行查询。下面是一些常用的MySQL JSON查询使用方法: 提取JSON字段的值: 使用->操作符可以提取JSON字段的值。例如,假设有一个名为dat
2023-08-17

递归查询与PostgreSQL的JSON数据类型

递归查询是一种在数据库中查询具有层次结构或嵌套关系的数据的方法在PostgreSQL中,可以使用递归公共表表达式(Recursive Common Table Expressions,简称CTE)实现递归查询。假设我们有一个包含JSON数
递归查询与PostgreSQL的JSON数据类型
2024-09-08

MySQL数据类型 - JSON数据类型 (2)

JSON值的规范化、合并和自动包装当一个字符串被解析并发现是一个有效的JSON文档时,它也会被规范化。这意味着,具有与稍后在文档中找到的键(从左到右)重复的键的成员将被丢弃。JSON_OBJECT()调用生成的对象值只包含第二个key1元素,因为该键名在之前值

	MySQL数据类型 - JSON数据类型 (2)
2019-09-03

MySQL数据类型 - JSON数据类型 (3)

最右边的数组元素。MySQL支持last关键字,作为数组中最后一个元素的索引的同义词。last - N 形式的表达式可用于相对寻址和范围定义,如下所示:如果不是针对数组计算路径,则求值结果与将该值包装在单个元素数组中的结果相同:可以使用带有JSON列标识符和J

	MySQL数据类型 - JSON数据类型 (3)
2021-03-13

MySQL数据类型 - JSON数据类型 (4)

JSON值的比较和排序JSON值可以使用=,=,,!=,和运算符进行比较。JSON值尚不支持以下比较运算符和函数:●BETWEEN●IN()●GREATEST()●LEAST()要想使用上面这些列出的比较运算符和函数,一个解决方法是将JSON值转换为原生MyS

	MySQL数据类型 - JSON数据类型 (4)
2016-08-23

MySQL对JSON数据进行查询

MySQL根据JSON字段的内容检索查询数据 使用 字段 -> ‘$.json’ 属性’ 进行查询条件 以下这两种会快很多,可以自己测试 使用 json_extract 函数查询,json_extract(字段, “$.json
2023-08-16

MySQL中JSON字段数据类型详解

目录前言创建jsON值搜索JSON类型数据在 JSON 和非 JSON 值之间转换JSON 值的汇总总结前言JSON 类型是从 mysql 5.7 版本开始支持http://www.cppcns.com的功能,MySQL 支持由RFC 7
2022-06-14

MySQL中JSON字段数据类型怎么用

本文小编为大家详细介绍“MySQL中JSON字段数据类型怎么用”,内容详细,步骤清晰,细节处理妥当,希望这篇“MySQL中JSON字段数据类型怎么用”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。前言JSON 类型
2023-07-02

navicat怎么查询数据类型

在 navicat 中查询数据类型,只需打开“字段”选项卡,即可找到“数据类型”列,显示每个字段的数据类型。如何使用 Navicat 查询数据类型在数据库管理软件 Navicat 中查询数据类型的方法非常简单:步骤:打开 Navicat
navicat怎么查询数据类型
2024-04-24

编程热搜

目录