0

我正在尝试从 JSON 列“值”中提取“名称”:

药片:

ID 价值
1 [{'id': 116298, 'name': '数据分析', 'language': 'en'}, {'id': 5462, 'name': '可视化', 'language': '00'}]

我的查询是:

select 
json_extract(t.value,'$name')
from t

也试过:

select 
JSON_SEARCH(t.value, 'all', 'name')
from t

我得到的错误是:

数据截断:函数 json_extract 的参数 1 中的 JSON 文本无效:“缺少对象成员的名称。” 在位置 2。

我错过了什么?感谢你的帮助!

4

1 回答 1

0

您使用了错误的语法:

select value->"$.name"
from t

正如这里所解释的

您可以像这样添加 where 条件

select value->"$.name"
from t
WHERE JSON_EXTRACT(value, "$.name") = 'Meital'

-> 运算符在与两个参数一起使用时充当 JSON_EXTRACT() 函数的别名,左侧是列标识符,右侧是根据 JSON 文档(列值)评估的 JSON 路径。您可以使用此类表达式代替 SQL 语句中出现的列标识符。

于 2020-12-21T15:02:34.943 回答