1. JSON_EXTRACT函數(shù):

JSON_EXTRACT函數(shù)用于從JSON字符串中提取指定路徑的值。它的語法如下:

SELECT JSON_EXTRACT(json_doc, path[, path]...)

其中,json_doc是要解析的JSON字符串,path是要提取的路徑,可以是字符串或者數(shù)字。

例如,給定如下的JSON字符串:

{
    "name": "John",
    "age": 30,
    "address": {
        "city": "New York",
        "zipcode": "10001"
    }
}

我們可以使用JSON_EXTRACT函數(shù)來提取其中的值:

SELECT JSON_EXTRACT('{"name": "John", "age": 30, "address": {"city": "New York", "zipcode": "10001"}}', '$.name');

上述查詢將返回名為"John"的值。

2. JSON_KEYS函數(shù):

JSON_KEYS函數(shù)返回一個JSON對象的所有鍵。它的語法如下:

SELECT JSON_KEYS(json_doc)

例如,給定如下的JSON字符串:

{"name": "John", "age": 30, "address": {"city": "New York", "zipcode": "10001"}}

我們可以使用JSON_KEYS函數(shù)來提取其中的鍵:

SELECT JSON_KEYS('{"name": "John", "age": 30, "address": {"city": "New York", "zipcode": "10001"}}');

上述查詢將返回一個包含"name"、"age"和"address"的JSON數(shù)組。

3. JSON_ARRAY函數(shù):

JSON_ARRAY函數(shù)用于創(chuàng)建一個JSON數(shù)組。它的語法如下:

SELECT JSON_ARRAY(value[, value]...)

例如,我們可以使用JSON_ARRAY函數(shù)創(chuàng)建一個包含多個值的JSON數(shù)組:

SELECT JSON_ARRAY('John', 30, 'New York');

上述查詢將返回一個包含字符串"John"、整數(shù)30和字符串"New York"的JSON數(shù)組。

4. JSON_OBJECT函數(shù):

JSON_OBJECT函數(shù)用于創(chuàng)建一個JSON對象。它的語法如下:

SELECT JSON_OBJECT(key, value[, key, value]...)

例如,我們可以使用JSON_OBJECT函數(shù)創(chuàng)建一個包含多個鍵值對的JSON對象:

SELECT JSON_OBJECT('name', 'John', 'age', 30, 'city', 'New York');

上述查詢將返回一個包含鍵"name"、"age"和"city"以及對應值的JSON對象。

5. JSON_SEARCH函數(shù):

JSON_SEARCH函數(shù)用于在JSON字符串中搜索指定的值,并返回對應的路徑。它的語法如下:

SELECT JSON_SEARCH(json_doc, one_or_all, search_str[, escape]]

其中,json_doc是要搜索的JSON字符串,one_or_all表示只返回第一個匹配項還是返回所有匹配項,search_str是要搜索的值,escape是轉義字符(可選)。

例如,給定如下的JSON字符串:

{
    "name": "John",
    "age": 30,
    "address": {
        "city": "New York",
        "zipcode": "10001"
    }
}

我們可以使用JSON_SEARCH函數(shù)來搜索其中的值:

SELECT JSON_SEARCH('{"name": "John", "age": 30, "address": {"city": "New York", "zipcode": "10001"}}', 'one', 'John');

上述查詢將返回"$['name']",表示名為"John"的值所在的路徑。

總結:

在MySQL中解析JSON字符串可以使用JSON_EXTRACT函數(shù)提取指定路徑的值,JSON_KEYS函數(shù)返回JSON對象的所有鍵,JSON_ARRAY函數(shù)創(chuàng)建一個JSON數(shù)組,JSON_OBJECT函數(shù)創(chuàng)建一個JSON對象,JSON_SEARCH函數(shù)搜索指定的值并返回對應的路徑。

通過靈活運用這些MySQL的JSON函數(shù),我們可以輕松地解析和查詢存儲為JSON格式的數(shù)據(jù),為數(shù)據(jù)分析和應用開發(fā)提供便利。