当前位置: 首页 > news >正文

MySQL 判断 JSON 数组是否相等

文章目录

  • 1.问题
  • 2.使用 JSON_CONTAINS 与 JSON_LENGTH
  • 参考文献

1.问题

JSON(JavaScript Object Notation)是流行的互联网应用服务之间的数据交换格式。

MySQL 从 5.7 版本开始支持 RFC 7159 定义的 JSON 规范,主要有 JSON 对象 和 JSON 数组两种类型。

如果需要判断 JSON 数组是否相等,该如何判断呢?

2.使用 JSON_CONTAINS 与 JSON_LENGTH

JSON_CONTAINS 用于判断JSON 文档是否包含路径中的特定对象。

JSON_CONTAINS(target, candidate[, path])

当作用于 JSON 数组时,可判断数组是否包含指定的元素。

JSON_LENGTH 用于获取 JSON 文档中的元素数量。

JSON_LENGTH(json_doc[, path])

当作用于 JSON 数组时,可获取的是数组元素个数。

具体判断方式如下:

WHERE JSON_CONTAINS(json_array_column, JSON_ARRAY(v1,v2...)) AND JSON_LENGTH(json_array_column)=array_length

其中 JSON_ARRAY 函数可以将一个或多个值创建为 JSON 数组,如果指定多个值,则表示要同时包含多个值条件才为 true。

使用 JSON_CONTAINS,为什么还要 JSON_LENGTH 呢?

因为 JSON_CONTAINS 为 true,并不代表两个数组相等。只有长度相等且包含另一个数组中的所有元素时,两个数组才可判为相等。

注意,以上判断两数组是否相等忽略顺序,即

[1,2,3] = [3,2,1]

如果严格判断两个 JSON 数组是否相等,直接比较即可。

WHERE json_array_column1=json_array_column2// 或指定数组
json_array_column=JSON_ARRAY(v1,v2...)

参考文献

OpenAI ChatGPT
MySQL 8.0 Reference Manual

http://www.lryc.cn/news/95761.html

相关文章:

  • uni-app个人中心
  • 只需3步,使用Stable Diffusion无限生产AI数字人视频
  • Mysql执行计划字段解释
  • Linux -- 线程
  • Android:实时更新时间
  • 24 鼠标常用事件
  • 了解 3DS MAX 3D摄像机跟踪设置:第 4 部分
  • nginx吞吐量调优
  • Python操作Excel文件,修改Excel样式(openpyxl)
  • AutoSAR系列讲解(实践篇)7.6-实验:配置SWCRTE(下)
  • 【node】使用express+gitee搭建图床,并解决防盗链问题
  • 蕨型叶分形
  • DevOps系列文章之 Git知识大全
  • JVM理论(六)执行引擎--垃圾回收
  • 贪心算法重点内容
  • 基于深度学习的高精度交通信号灯检测系统(PyTorch+Pyside6+YOLOv5模型)
  • 【3D目标检测】DSVT-2023CVPR
  • 我在VScode学Python(Python函数,Python模块导入)
  • 【目标跟踪】1、基础知识
  • 33. 搜索旋转排序数组
  • 接口自动化测试要做什么?8个步骤讲的明明白白(小白也能看懂系列)
  • Flutter 自定义 虚线 分割线
  • Java毕业设计—爱宠医院管理系统设计与实现
  • AI时代带来的图片造假危机,该如何解决
  • 【动态规划】简单多状态
  • 科技资讯|苹果计划本月推出Vision Pro头显开发套件,电池有重大更新
  • k8s 将pod节点上的文件拷贝到本地
  • Git简介与工作原理:了解Git的基本概念、版本控制系统和分布式版本控制的工作原理
  • java篇 类的进阶0x02:方法重载
  • Android11 相机拍照权限,以及解决resolveActivity返回null