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.mzph.cn/news/3774.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NAS 问题处理记录

在解决自动配网的过程中,突然NAS不给力,偏偏这个时间找事情。上面这两个问题,说不复杂也不复杂,主要是自己在完全远程处理,很多不方便。当然少不了师弟的助攻,很感谢我的师弟帮忙,实验室的网络不…

ubuntu20.04系统安装使用labelme标注数据集

一、Anaconda的安装 请参考:MediapipeVSCodeAnaconda 实时检测手部关键点并保存视频_苦瓜汤补钙的博客-CSDN博客 二、Labelme的安装 1.打开终端创建虚拟环境 # 创建labelme的环境 conda create -n labelme python3.9 输入“y”,然后回车。 2.激活虚拟…

基于单片机的智能路灯控制系统人体感应灯光控制系统的设计与实现

功能介绍 以51单片机作为主控系统;LCD1602液晶显示当前时间、年月日、时分秒;按键看看有设置自动手动模式;3路红外探头用来感应当前3个区域是否有人;按键可以设置当前时间、开启和关闭教室灯光时间;在手动模式下&#…

uni-app解决A页面调用方法后,自动触发B页面的方法

项目场景: tabbarA页面,触发一个点击事件,需要tabbarB页面自动触发请求接口的方法 问题描述 tabbar A页面触发一个点击事件后, tabbarB页面在onload钩子函数中去请求接口,只有tabbarB页面首次打开时会触发onload钩子函数请求接口,再次跳转tabbarB页面不触发onload…

【JavaEE面试题(九)线程安全问题的原因和解决方案】

多线程-初阶 4. 多线程带来的的风险-线程安全 (重点)4.1 观察线程不安全原因是 1.load 2. add 3. save 4.2 线程安全的概念4.3 线程不安全的原因最根本的是 操作系统对线程的调度是随机的★1. 修改共享数据(多个线程修改同一个变量)★2. 操作不是原子性★…

园区水电能源管理系统平台

园区水电能源管理系统平台是一种集成了水电能源监测、管理和优化功能的平台,旨在帮助园区管理者实现对水电资源的实时监测、合理节能和优化使用。随着能源需求的不断增长和能源价格的不断攀升,园区管理者面临着越来越大的节能减排压力。因此,…

5 | Pandas日期操作教程

文章目录 Pandas日期操作教程1. 导入 Pandas 和准备数据2. 将日期作为索引3. 重采样和时间窗口重采样时间窗口4. 日期偏移5. 时间差计算6. `dt`属性提取日期时间的各个组成部分计算时间差Pandas日期操作教程 在数据分析和数据科学的领域中,经常会遇到时间序列数据。Pandas是P…

IDEA中设置鼠标滚轮修改字体大小

IDEA中设置鼠标滚轮修改字体大小? 选择File--Settings--Editor--General,把 Mouse Control 前的对勾勾选 后点击 OK 即可。 勾选此设置后,增加 Ctrl 鼠标滚轮 快捷键来控制代码字体大小显 示。字体随时可以放大缩小~~可真好用呢~

OpenCv之图像轮廓

目录 一、图像轮廓定义 二、绘制轮廓 三、计算轮廓面积与周长 一、图像轮廓定义 图像轮廓是具有相同颜色或灰度的连续带你的曲线.轮廓在形状分析和物体的检测和识别中很有用 轮廓的作用: 用于图形分析物体的识别与检测 注意点: 为了检测的准确性,需要先对图像…

什么是 XSS 攻击,攻击原理是什么

什么是 XSS 攻击? XSS(Cross-Site Scripting)攻击是一种常见的 Web 安全漏洞,其攻击目标是 Web 应用程序中的用户,攻击者通过在 Web 页面中植入恶意脚本,从而实现窃取用户敏感信息、篡改用户数据等目的。 …

线程与信号

1. 进程内所有线程共享信号处理配置,故信号配置可以全部放在主线程内。 2. 每个线程有自己的信号掩码sigset_t,线程创建时继承创建时线程的信号掩码。 3. 触发信号处理函数按创建线程顺序分配给当前空闲线程,信号处理函数内是可以阻塞的。 …

云计算名词-IaaS,PaaS,SaaS

在学习分布式的过程中,知道了PaaS这个词儿,但是不知道是什么意思。从网上查询了之后,做了简单的了解。这里简单记录一下,方面之后的查阅。 IAAS(Infrastructure-as-a-Service)基础设施即服务 网上的定义是…

webpack相关

在 webpack < 4 的版本中&#xff0c;通常将 vendor 作为一个单独的入口起点添加到 entry 选项中&#xff0c;以将其编译为一个单独的文件&#xff08;与 CommonsChunkPlugin 结合使用&#xff09;。而在 webpack 4 中不鼓励这样做。而是使用 optimization.splitChunks 选项…

E6新语法for of 和ES3的for in 有什么区别?useState为什么是用数组结构而不用对象?

for of 是es6新增的循环方式&#xff0c;请问for in 和for of的区别 1 for in会返回数组中所有可枚举属性,包括原型链上可枚举的属性,会遍历对象的整个原型链,性能较差不推荐使用; for of 不会往原型链下继续循环遍历,只会返回数组索引对应的属性值;for in 遍历数组拿到的是数…

【MySQL】MySQL数据库的初阶使用

文章目录 一、MySQL服务的安装二、数据库基础1.什么是数据库&#xff1f;&#xff08;基于CS模式的一套数据存取的网络服务&#xff09;2. Linux文件系统和数据库的关系 && 主流数据库3.MySQL架构 && SQL分类 && MySQL存储引擎 三、MySQL操作库1.库结构…

查询网络服务和端口

netstat 命令用于显示各种网络相关信息&#xff0c;如网络连接, 路由表&#xff0c;接口状态 (Interface Statistics)&#xff0c;masquerade 连接&#xff0c;多播成员 (Multicast Memberships) 等等。 列出所有端口 (包括监听和未监听的): netstat -a列出所有 tcp 端口: n…

ELK-日志服务【redis-配置使用】

目录 环境 【1】redis配置 【2】filebeat配置 【3】对接logstash配置 【4】验证 【5】安全配置&#xff1a;第一种&#xff1a;kibana-nginx访问控制 【6】第二种&#xff1a;在ES-主节点-配置TLS 【7】kibana配置密码 【8】logstash添加用户密码 环境 es-01,kibana 1…

掘金量化—Python SDK文档—5.API 介绍(1)

​ Python SDK文档 5.API 介绍 5.1基本函数 init - 初始化策略 初始化策略, 策略启动时自动执行。可以在这里初始化策略配置参数。 函数原型&#xff1a; init(context)参数&#xff1a; 参数名类型说明contextcontext上下文&#xff0c;全局变量可存储在这里 示例&…

本周信息差 | 微软合并暴雪新进展

⭐️ 微软合并暴雪新进展 美国一位联邦法官发现&#xff0c;联邦交易委员未能证明微软收购动视暴雪&#xff0c;一个在线游戏开发商&#xff0c;会如何损害竞争&#xff0c;并且驳回了该机构阻止交易的禁令请求。联邦交易委员会认为&#xff0c;微软会让动视暴雪的畅销游戏&am…

C# 枚举使用整理_C# enum详解

一、枚举的定义 枚举类型 是由基础整型数值类型的一组命名常量定义的值类型。 System.Enum 类型是所有枚举类型的抽象基类。 它提供多种方法来获取有关枚举类型及其值的信息。 有关更多信息和示例&#xff0c;请参阅 System.Enum API 参考页。 可在基类约束中使用 System.En…