I have a table with a JSON TYPE column like this:
id | json_info | date |
---|---|---|
1. | {"Ccclaptop_model": {"value": "asus", "price": "2122"}, "laptop_ram": {"value": "6", "price": "122"}, "laptop_mouse_model": {"value": "logic", "price": "30"} , "laptop_keys_model": {"value": "USA", "price": "10"}} | 2020-02-02 |
And I'd like to have a query that extracts a sub-JSON with his key value, like this:
id | json_info | date |
---|---|---|
1. | {"laptop_mouse_model": {"value": "logic", "price": "30"} , "laptop_keys_model": {"value": "USA", "price": "10"}} | 2020-02-02 |
I have tried JSON_EXTRACT
SELECT id,
JSON_EXTRACT(json_info, '$.laptop_mouse_model', '$.laptop_keys_model' ) AS store_id
FROM feature_data WHERE date = '2020-02-02';
but just return a JSON array without keys, like this:
id | json_info | date |
---|---|---|
1. | [{"value": "logic", "price": "30"} ,{"value": "USA", "price": "10"}] | 2020-02-02 |
Does somebody know if exists a function that I could use?
您可以使用JSON_OBJECT
将结果组合为 json,例如:
SELECT id,JSON_OBJECT('laptop_mouse_model',JSON_EXTRACT(json_info, '$.laptop_mouse_model'),'laptop_keys_model',JSON_EXTRACT(json_info, '$.laptop_keys_model')) AS store_id FROM feature_data WHERE date = '2020-02-02';
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.