我在 mysql 表中的 json 列中设置了我的数据,该列具有嵌套行,每个子数组都有唯一键。我正在使用 MySQL 8 并尝试使用 json_table 函数但没有成功。
这是我的表的示例结构和数据:
CREATE TABLE tb(json_col JSON);
INSERT INTO tb VALUES (
'{ "actors": {
"101": { "name":"Arnold", "address":"780 Mission St, San Francisco, CA 94103"},
"102": { "name":"Sylvester", "address":"75 37th Ave S, St Cloud, MN 94103"},
"103": { "name":"Al Pacino", "address":"1262 Roosevelt Trail, Raymond, ME 04071"}
}
}'
);
如果您注意到,我有那些键(101、102、103 ...)在我使用 json_table 时给我带来了问题。如果我有一个没有这些键的结构,我可以将值放入行中,但是如果这些键介于两者之间,我将无法前进。
我要传递的查询是:
SELECT actors.*
FROM tb,
JSON_TABLE(json_col, '$.actors.*' COLUMNS (
name VARCHAR(40) PATH '$.*.name',
address VARCHAR(100) PATH '$.*.address')
) actors;
对此的回应是“返回 0 行”。
我的目标是通过这种方式获取数据:
| name | address |
|-----------|-----------------------------------------|
| Arnold | 780 Mission St, San Francisco, CA 94103 |
| Sylvester | 75 37th Ave S, St Cloud, MN 94103 |
| Al Pacino | 1262 Roosevelt Trail, Raymond, ME 04071 |
请帮助我朝着正确的方向前进。谢谢