当mysql存储JSON格式的数据时,我们需要对JSON进行提取。MySQL 5.7版本以上,提供了JSON_EXTRACT()函数来实现从JSON中提取值。
JSON_EXTRACT()函数的语法
JSON_EXTRACT(json_path)
json_path为JSON路径参数,返回该路径下的JSON值。
示例1
已知json字段'data'的值为:
{
"name": "Tom",
"age": 20,
"address": {
"province": "Guangdong",
"city": "Shenzhen",
"district": "Futian"
},
"friends": [
{"name": "John", "age": 22},
{"name": "Bob", "age": 21}
]
}
我们想要获取Tom的名字,可以使用以下语句:
SELECT JSON_EXTRACT(data, "$.name") AS username FROM table;
这里JSON_EXTRACT()函数将返回"name"字段对应的值"Tom"。
示例2
已知json字段'data'的值为:
{
"product": {
"id": "12345",
"name": "手机",
"price": {
"sale": {
"amount": 1999.00,
"currency": "RMB"
}
}
}
}
我们想要获取商品名称以及商品的售价,我们可以使用以下代码:
SELECT
JSON_EXTRACT(data, "$.product.name") AS product_name,
JSON_EXTRACT(data, "$.product.price.sale.amount") AS product_price
FROM table;
这里JSON_EXTRACT()函数将返回"value"字段对应的值"手机"以及"amount"字段对应的值1999.00。
注意:需要使用双引号将json_path包围起来。
除了JSON_EXTRACT()函数以外,还有其他JSON处理函数,如JSON_CONTAINS()和JSON_ARRAYAGG()等。这些函数在处理JSON数据时提供了很大的便利。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:mysql 如何使用JSON_EXTRACT() 取json值 - Python技术站