mysql - 如何在 MySQL 中检查 JSON 数组中的任何类似元素
问题描述
我在 JSON 整数数组的表 A 中有一行。
我有一个表 B,其行有一个(可能为空)JSON 对象数组的字段,每个对象都有一个“父”字段。
table A
+-----------+
| foo |
+-----------+
| [1, 2] |
+-----------+
table B
+--------------------------------+
| bar |
+--------------------------------+
| [{"parent": 1}] |
| [{"parent": 2}, {"parent": 3}] |
| [{"parent": 4}] |
| [] |
+--------------------------------+
如何从表 B 中获取其 bar 中的对象没有任何父级匹配 foo 中的任何元素的行?即这里的最后两行应该被返回。
我尝试用 做一些事情SELECT JSON_EXTRACT(bar, '$[*].parent') FROM B
,但结果是一个 JSON 数组
+-----------------------------------------+
| SELECT JSON_EXTRACT(bar, '$[*].parent') |
+-----------------------------------------+
| [1] |
| [2, 3] |
| [4] |
| NULL |
+-----------------------------------------+
并且该函数JSON_CONTAINS()
不返回部分匹配:
“当且仅当候选数组中的每个元素都包含在目标的某个元素中时,候选数组才包含在目标数组中。” MySQL 文档
任何帮助是极大的赞赏。MySQL 版本 5.7.22
解决方案
推荐阅读
- javascript - 动态创建元素时,点击时看不到属性
- python - Maya 的 Render.exe:preRender 和 postRender 标志生成错误
- python - TypeError:*:'int'和'builtin_function_or_method'不支持的操作数类型,同时尝试使用numpy乘以一些变量
- java - 返回的对象更改私有引用变量值
- css - woocomerce 上特定产品的自定义列表
- python - 将带有二进制 UUID 的 CSV 导入 MySQL Workbench
- node.js - 如何使用 Express 和 EJS 显示用户上传的图像?
- c# - asp.net mvc-5中的ViewModel可以用于登录吗?
- html - 使用 Nodemailer 发送电子邮件时出错
- xaml - 网格行间距似乎在 PancakeView 中不起作用