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
MySQL 判断 JSON 数组是否相等相关推荐
- mysql解析json/数组
tb1.theColumnName->'$.jsonkey' as columnName ==================================================== ...
- mysql 展开json 数组格式数据
正常Json数组是存放多个数据的,如果需要拆分开来使用,可以用如下公式 SELECT* FROMpas_func_v2,JSON_TABLE ( func_atom, "$[*]" ...
- php 判断 json 数组,php判断是否是json数组
首先要记住json_encode返回的是字符串, 而json_decode返回的是对象. 判断数据不是JSON格式:function is_not_json($str){ return is_null ...
- mysql 处理json数组
数据准备 创建表 CREATE TABLE `json` (`id` int NOT NULL,`json` varchar(2550) CHARACTER SET utf8 COLLATE utf8 ...
- mysql解析json数组转字符串
Java架构进阶之面试篇 面试这一块,分别有基础.中级.高级等三部分,一步一步检测. Java基础面试+解析 Java中级开发面试+解析 Java高级面试+解析 Java架构进阶之技能导图篇 筑基 框 ...
- mysql解析json字符串_Mysql解析json字符串/数组
1 Mysql解析json字符串 解决方法:JSON_EXTRACT(原字段,'$.json字段名') 执行SQL: SELECT JSON_EXTRACT( t.result,'$.row'), J ...
- 前端JS:判断list(数组)中的json对象是否重复
前端JS:判断list(数组)中的json对象是否重复 <!DOCTYPE html> <html> <head> <meta charset="u ...
- mysql json 数组_在MYSQL中读取JSON数组
mysql> SET @`json` := -> '[ '> { '> "id": 1, "type": 2 '> }, '> ...
- mysql获取多层嵌套json_使用两个mySQL查询来创建嵌套的JSON数组
我正尝试创建一个嵌套的JSON数组,第二个查询的结果被附加到第一个的行上. 我的代码到目前为止如下: - $output = array(); $sql = "select cp_comme ...
最新文章
- php四位数加密,如何使用php实现一个对数字进行8位的加密解密函数
- RocketMQ可视化控制台
- jqgrid横向滚动条
- linux svn添加新文件夹,linux svn 添加文件夹
- Jquery 单击_双击_鼠标经过_鼠标离开_背景样式变化
- qregexp括号匹配_转:Qt的正则表达式和QRegExp
- cp 过程中目录突然挂了_怎么解决管材激光切割机切管过程中出现的过烧及挂渣...
- c语言左(<<)右(>>)移
- 灰度重采样的方法分为_DSA医疗影像增强技术特点及方法
- python自动执行脚本
- Linux系统下配置JDK环境变量
- ubuntu mongodb安装
- Ae:Roto 笔刷工具和调整边缘工具
- [Android] 【极其罕见】【安卓】视频转换器【支持18种格式转换!】
- ECshop二次开发从开始
- 推荐几个非常不错的富文本编辑器
- Thinkphp3.2(tp3.2) sql语句表达式查询字符列表【eq,neq,gt,egt,lt,elt,in,between,like,exp】
- NVIDIA vulkan driver的安装和Jetson平台上vulkan sdk的制作
- 银行从业资格考试通过后如何申请证书
- 关键链法vs关键路径法