我有一个带有json列的表。下面是示例:表员工
id emp_json
1 {"details" : [{"10":"909"},{"11":"910"}]}
2 {"details" : [{"20":"809"},{"21":"810"}]}
现在我想从json数组中提取ID
我尝试了以下查询。
SELECT JSON_KEYS(JSON_EXTRACT(u.emp_json, '$.details'), '$[0]') FROM employee u ;
但是这只给了我一个来自数组第一个对象的键。 据我了解,这是因为$ [0]
预期是
id json_key
1 10
1 11
2 20
2 21
预先感谢
答案 0 :(得分:0)
这将使您以逗号分隔,仅选择索引0,应选择1
SELECT
id,
CONCAT(
JSON_KEYS(JSON_EXTRACT(u.emp_json, '$.details'), '$[0]'),
",",
JSON_KEYS(JSON_EXTRACT(u.emp_json, '$.details'), '$[1]')
) As json_key
FROM employee u ;
输出:-
| id | json_key |
| --- | ------------- |
| 1 | ["10"],["11"] |
| 2 | ["20"],["21"] |