返回顶部
首页 > 资讯 > 数据库 >MySQL 判断 JSON 数组是否相等
  • 408
分享到

MySQL 判断 JSON 数组是否相等

mysqljson 2023-08-17 18:08:00 408人浏览 泡泡鱼
摘要

文章目录 1.问题2.使用 JSON_CONTAINS 与 JSON_LENGTH参考文献 1.问题 JSON(javascript Object Notation)是流行的互联网应用服务之间的数据交换格式。 Mysql 从 5

1.问题

JSONjavascript 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

来源地址:https://blog.csdn.net/K346K346/article/details/131812638

您可能感兴趣的文档:

--结束END--

本文标题: MySQL 判断 JSON 数组是否相等

本文链接: https://www.lsjlt.com/news/373176.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作