gpt4 book ai didi

mysql - 在数组中搜索 JSON 数据类型的对象属性时出现问题

转载 作者:行者123 更新时间:2023-11-29 02:16:07 25 4
gpt4 key购买 nike

我有以下架构,value 作为 JSON 类型

mysql> select * from people;
+------+---------------------------------------------------------------------------+
| id | value |
+------+---------------------------------------------------------------------------+
| blah | {"key1": "value1", "key2": "value2"} |
| foo | {"key1": "value1", "friends": [{"friendId": "123"}, {"friendId": "foo"}]} |
+------+---------------------------------------------------------------------------+

我希望下面的查询返回 foo 行,但它没有。

mysql> select * from people where value->'$.friends[*].friendId' = "123";
Empty set

条件 value->'$.friends[*].friendId' 似乎有效,因为它适用于以下查询:

mysql> select value->'$.friends[*].friendId' from people;
+---------------------------------+
| value->'$.friends[*].friendId' |
+---------------------------------+
| NULL |
| ["123", "foo"] |
+---------------------------------+

那么查询 select * from people where value->'$.friends[*].friendId' = "123"; 为何没有返回任何结果?

最佳答案

JSON_CONTAINS 与我感兴趣的 JSON 数组值一起使用:

select * from people where JSON_CONTAINS (value, {"friends": [{"friendId": "123"}]});

关于mysql - 在数组中搜索 JSON 数据类型的对象属性时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39380787/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com