MySQL JSON_TABLE因JSON层级不匹配报错,求正确字段结构
正确的JSON_TABLE语句实现
针对你提供的多层级JSON结构,需要修正字段路径以匹配层级关系,同时补全语句的语法缺失部分,正确的SQL语句如下:
SELECT * FROM JSON_TABLE( '[ { "company": 2, "employee": { "payroll": 1, "id":130434 }, "resources": { "lastname": "Garcia", "name": "Luis" } } ]', '$[*]' COLUMNS( payroll INT PATH '$.employee.payroll', ID INT PATH '$.employee.id', lastname VARCHAR(100) PATH '$.resources.lastname', name VARCHAR(100) PATH '$.resources.name', company INT PATH '$.company' -- 可选:如果需要提取company字段 ) ) AS jt;
修改说明
- 修正数据源参数:原语句中
'$Employees'不是有效的JSON输入,替换为实际的JSON字符串(如果JSON存储在表列中,可直接使用列名,例如your_table.json_column)。 - 匹配层级路径:根据JSON的嵌套结构,调整字段路径:
payroll和id属于employee子对象,路径改为$.employee.payroll、$.employee.idlastname和name属于resources子对象,路径改为$.resources.lastname、$.resources.name
- 补全语法:原语句缺少闭合的括号,补充后保证SQL语法合法。
内容的提问来源于stack exchange,提问作者Luis Guerra
相关产品推荐
相关产品推荐

