使用MySQL提取JSON

使用MySQL提取JSON,mysql,json,database,Mysql,Json,Database,我将JSON_EXTRACT与MYSQL一起使用,并使用以下命令: SET @j = '{"id" : "1"}'; SELECT JSON_EXTRACT(@j, '$.id') 结果是 "1" 但是,当我使用 SET @j = '[{"id" : "1"}, {"id" : "2"}]'; SELECT JSON_EXTRACT(@j, '$.id') 结果是 NULL 我期待这个结果 "1" "2" 有什么建议吗?我想要JSON中的ID列表。试试这个: SET @j = '[{"

我将JSON_EXTRACT与MYSQL一起使用,并使用以下命令:

SET @j = '{"id" : "1"}';
SELECT JSON_EXTRACT(@j, '$.id')
结果是

"1"
但是,当我使用

SET @j = '[{"id" : "1"}, {"id" : "2"}]';
SELECT JSON_EXTRACT(@j, '$.id')
结果是

NULL
我期待这个结果

"1"
"2"
有什么建议吗?我想要JSON中的ID列表。

试试这个:

SET @j = '[{"id" : "1"}, {"id" : "2"}]';
SELECT JSON_EXTRACT(@j,'$[*].id')
结果是:

["1", "2"]

您正在使用两种不同类型的对象。第一个是具有
id
属性的对象。第二个是数组。您需要首先遍历数组以访问每个id
,如果这些参数可能返回多个值,则匹配的值将自动包装为数组,顺序与生成它们的路径对应。
,请参阅。看见