mariadb json对象数组根据属性条件过滤

时间:2020-04-22 00:03:39

标签: mysql json mariadb

test_js的结构:

`id` int(11) unsigned NOT NULL AUTO_INCREMENT
`json` JSON

数据:

`id`    `json`

`1`     `[{"id": 1, "size": 1, "ver": 0},{"id": 2, "size": 3, "ver": 1},{"id": 1, "size": 3, "ver": 2}]`
`2`     `[{"id": 1, "size": 3, "ver": 0}]`
`3`     `[{"id": 1, "size": 2, "ver": 3}]`

我需要根据条件{“ id”:1,“ size”:3}返回经过过滤的对象数组

我尝试JSON_CONTAINS:

select `json` 
from `test_js` 
WHERE JSON_CONTAINS(`json`, JSON_OBJECT("id", 1, "size", 3), '$');

我得到:

[{"id": 1, "size": 1, "ver": 0}, {"id": 2, "size": 3, "ver": 1}, {"id": 1, "size": 3, "ver": 2}]
[{"id": 1, "size": 3, "ver": 0}]

但我需要这样:

[{"id": 1, "size": 3, "ver": 2}]
[{"id": 1, "size": 3, "ver": 0}]

是否存在JSON函数的任意组合以获取所需的结果?
当前版本-MariaDB 10.3.12

0 个答案:

没有答案