json_table语法和结构

时间:2019-06-23 09:53:41

标签: mysql arrays json

我第一次使用MySQL中的表,其中某些字段包含JSON。

我正在尝试使用json_table函数,以便可以在关系脚本中使用json数据。 json_table上的所有指南都提供了这种类型的示例语法:

SELECT people.* 
FROM t1, 
     JSON_TABLE(json_col, '$.people[*]' 
COLUMNS (
                name VARCHAR(40)  PATH '$.name',
                address VARCHAR(100) PATH '$.address')
     ) people;

我的问题是存储在表中的json数据如下:

[{"name":"cdennett","address":"123 street","Postcode":"ABCDE"}]

但是从json数据的所有示例中,我可以发现它应该像这样:

["people": {"name":"cdennett","address":"123 street","Postcode":"ABCDE"}]

我已经尽了一切可能,但是每次都会收到一条错误消息,大概是因为我没有在语法中的json_col之后指定数组('$ .people [*]')。但是我不认为我有这个。有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您在JSON_TABLE函数上的路径错误。您要'$ [*]'而不是 $。people [*]'

SELECT people.* 
 FROM t1, 
 JSON_TABLE(json_col, '$[*]'
 COLUMNS (
            name VARCHAR(40)  PATH '$.name',
            address VARCHAR(100) PATH '$.address')
 ) people;