我第一次使用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 [*]')。但是我不认为我有这个。有人可以帮忙吗?
答案 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;