如何在MySQL中检查JSON数组中的任何类似元素

时间:2018-07-19 21:20:05

标签: mysql json

我在A的整数数组的表A中有一行。

我有一个表B,表B的行包含一个(可能为空)JSON对象数组的字段,并且每个对象都有一个“父”字段。

  table A
+-----------+
| foo       |
+-----------+
| [1, 2]    |
+-----------+

  table B
+--------------------------------+
| bar                            |
+--------------------------------+
| [{"parent": 1}]                |
| [{"parent": 2}, {"parent": 3}] |
| [{"parent": 4}]                |
| []                             |
+--------------------------------+

如何从表B中获得行,而表B中bar中的对象没有任何父项与foo中的任何元素匹配?即应返回此处的最后2行。

我尝试使用SELECT JSON_EXTRACT(bar, '$[*].parent') FROM B做某事,但结果是一个JSON数组

+-----------------------------------------+
| SELECT JSON_EXTRACT(bar, '$[*].parent') |
+-----------------------------------------+
| [1]                                     |
| [2, 3]                                  |
| [4]                                     |
| NULL                                    |
+-----------------------------------------+

函数JSON_CONTAINS()不返回部分匹配项:

“当且仅当候选对象中的每个元素都包含在目标的某个元素中时,候选数组才包含在目标数组中。” MySQL docs

任何帮助将不胜感激。 MySQL版本5.7.22

0 个答案:

没有答案