文章目录

  • 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 数组是否相等相关推荐

  1. mysql解析json/数组

    tb1.theColumnName->'$.jsonkey' as columnName ==================================================== ...

  2. mysql 展开json 数组格式数据

    正常Json数组是存放多个数据的,如果需要拆分开来使用,可以用如下公式 SELECT* FROMpas_func_v2,JSON_TABLE ( func_atom, "$[*]" ...

  3. php 判断 json 数组,php判断是否是json数组

    首先要记住json_encode返回的是字符串, 而json_decode返回的是对象. 判断数据不是JSON格式:function is_not_json($str){ return is_null ...

  4. mysql 处理json数组

    数据准备 创建表 CREATE TABLE `json` (`id` int NOT NULL,`json` varchar(2550) CHARACTER SET utf8 COLLATE utf8 ...

  5. mysql解析json数组转字符串

    Java架构进阶之面试篇 面试这一块,分别有基础.中级.高级等三部分,一步一步检测. Java基础面试+解析 Java中级开发面试+解析 Java高级面试+解析 Java架构进阶之技能导图篇 筑基 框 ...

  6. mysql解析json字符串_Mysql解析json字符串/数组

    1 Mysql解析json字符串 解决方法:JSON_EXTRACT(原字段,'$.json字段名') 执行SQL: SELECT JSON_EXTRACT( t.result,'$.row'), J ...

  7. 前端JS:判断list(数组)中的json对象是否重复

    前端JS:判断list(数组)中的json对象是否重复 <!DOCTYPE html> <html> <head> <meta charset="u ...

  8. mysql json 数组_在MYSQL中读取JSON数组

    mysql> SET @`json` := -> '[ '> { '> "id": 1, "type": 2 '> }, '> ...

  9. mysql获取多层嵌套json_使用两个mySQL查询来创建嵌套的JSON数组

    我正尝试创建一个嵌套的JSON数组,第二个查询的结果被附加到第一个的行上. 我的代码到目前为止如下: - $output = array(); $sql = "select cp_comme ...

最新文章

  1. php四位数加密,如何使用php实现一个对数字进行8位的加密解密函数
  2. RocketMQ可视化控制台
  3. jqgrid横向滚动条
  4. linux svn添加新文件夹,linux svn 添加文件夹
  5. Jquery 单击_双击_鼠标经过_鼠标离开_背景样式变化
  6. qregexp括号匹配_转:Qt的正则表达式和QRegExp
  7. cp 过程中目录突然挂了_怎么解决管材激光切割机切管过程中出现的过烧及挂渣...
  8. c语言左(<<)右(>>)移
  9. 灰度重采样的方法分为_DSA医疗影像增强技术特点及方法
  10. python自动执行脚本
  11. Linux系统下配置JDK环境变量
  12. ubuntu mongodb安装
  13. Ae:Roto 笔刷工具和调整边缘工具
  14. [Android] 【极其罕见】【安卓】视频转换器【支持18种格式转换!】
  15. ECshop二次开发从开始
  16. 推荐几个非常不错的富文本编辑器
  17. Thinkphp3.2(tp3.2) sql语句表达式查询字符列表【eq,neq,gt,egt,lt,elt,in,between,like,exp】
  18. NVIDIA vulkan driver的安装和Jetson平台上vulkan sdk的制作
  19. 银行从业资格考试通过后如何申请证书
  20. 关键链法vs关键路径法

热门文章

  1. Spark - AUC、Accuracy、Precision、Recall、F1-Score 理论与实战
  2. linux下dia的安装
  3. 奋斗和追求精神,以及何时青春已逝的思考
  4. html5 多语言支持,多语言HTML5应用程序
  5. 【windows】03.记事本
  6. 分析在线生成模板、导入、导出
  7. Linux构建高效FTP服务器
  8. Nginx+uWSGI+Django方法部署Django程序
  9. 5月新浪微博算法实习面经
  10. python爬网易新闻_爬虫基本介绍 python3 爬虫爬取网易新闻排行榜