从 uknknown 数组键中提取 JSON
Posted
技术标签:
【中文标题】从 uknknown 数组键中提取 JSON【英文标题】:JSON extract from uknknown array key 【发布时间】:2018-03-06 01:02:02 【问题描述】:我有一个结构 - 列访问者
["firstname":"john","lastname":"penn","firstname":"mickey","lastname":"smith","firstname":"darth","lastname":"vader"]
我想知道这个 json 中列出的所有这些人中是否有一个 john。
我的查询没有找到任何内容(未找到任何行)
SELECT conference_name FROM conference WHERE JSON_EXTRACT(visitors, "$[*].firstname") = 'john';
这是否可以仅使用 json_extract 而不是 json_search 来实现,因为它在大表中非常慢?
【问题讨论】:
“列表”从何而来? @SimonFranzen 已修复,更清楚。会议是表,访问者是所有访问者的 json 列。 将"$[*].firstname"
更改为 "$.firstname"
。我还添加了一个答案。你能检查它是否有帮助
【参考方案1】:
就像docs中提到的:
mysql> SELECT c, JSON_EXTRACT(c, "$.firstname"), g
> FROM jemp
> WHERE JSON_EXTRACT(c, "$.firstname") = 'john';
或者你可以试试
SELECT conference_name FROM conference WHERE JSON_EXTRACT(visitors, "$.firstname") = 'john';
还是?
SELECT conference.conference_name FROM conference WHERE JSON_EXTRACT(conference.visitors, "$.firstname") = 'john';
【讨论】:
不起作用,仍然返回 0 行。正如您在我的案例中所看到的,有一个表作为***组,您的解决方案仅在每个键只有一个时才有效 - 只有一个 json 对象。我的情况实际上是一个数组中的多个相同的结构化对象 - $[object_number_inside_array].objectkey 好的哇,你是对的。 phhheew,在数组中搜索?你看过这个帖子***.com/questions/36346252/…以上是关于从 uknknown 数组键中提取 JSON的主要内容,如果未能解决你的问题,请参考以下文章