什么是Json數(shù)組?
Json數(shù)組是一種常見的數(shù)據(jù)格式,包含多個元素,以中括號包圍。在Mysql中,可以使用Json類型存儲Json數(shù)組。
如何使用函數(shù)解析Json數(shù)組?
Mysql提供了多個Json函數(shù)可以解析Json數(shù)組,包括Json_extract(), Json_unquote(),Json_contains()等。
Json_extract()函數(shù)的使用
Json_extract()函數(shù)可以提取Json數(shù)組中的指定元素。
例如,我們有以下Json數(shù)組:
{"person":[{"name":"Tom","age":20},{"name":"Jerry","age":22}]}
我們可以使用以下語句提取person中的第一個元素:
SELECT Json_extract('{"person":[{"name":"Tom","age":20},{"name":"Jerry","age":22}]}', '$.person[0]');
執(zhí)行結(jié)果為:{"name":"Tom","age":20}
Json_unquote()函數(shù)的使用
Json_unquote()函數(shù)可以將提取的Json元素去除引號。
例如,我們執(zhí)行以下語句提取Json數(shù)組中的name元素:
SELECT Json_unquote(Json_extract('{"person":[{"name":"Tom","age":20},{"name":"Jerry","age":22}]}', '$.person[0].name'));
執(zhí)行結(jié)果為:Tom
Json_contains()函數(shù)的使用
Json_contains()函數(shù)可以判斷Json數(shù)組中是否包含指定元素。
例如,以下語句判斷Json數(shù)組中是否包含age為22的元素:
SELECT Json_contains('{"person":[{"name":"Tom","age":20},{"name":"Jerry","age":22}]}', '22') as age_exist;
如果包含,則age_exist為1,不包含則為0。