【发布时间】:2016-09-08 00:18:13
【问题描述】:
我有以下架构,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"; 没有返回结果呢?
【问题讨论】:
标签: mysql jsonpath mysql-5.7 mysql-json