久久福利_99r_国产日韩在线视频_直接看av的网站_中文欧美日韩_久久一

您的位置:首頁技術文章
文章詳情頁

MySQL處理JSON常見函數的使用

瀏覽:2日期:2023-10-05 10:23:05

官方文檔:JSON Functions

Name Description JSON_APPEND() Append data to JSON document JSON_ARRAY() Create JSON array JSON_ARRAY_APPEND() Append data to JSON document JSON_ARRAY_INSERT() Insert into JSON array -> Return value from JSON column after evaluating path; equivalent to JSON_EXTRACT(). JSON_CONTAINS() Whether JSON document contains specific object at path JSON_CONTAINS_PATH() Whether JSON document contains any data at path JSON_DEPTH() Maximum depth of JSON document JSON_EXTRACT() Return data from JSON document ->> Return value from JSON column after evaluating path and unquoting the result; equivalent to JSON_UNQUOTE(JSON_EXTRACT()). JSON_INSERT() Insert data into JSON document JSON_KEYS() Array of keys from JSON document JSON_LENGTH() Number of elements in JSON document JSON_MERGE() Merge JSON documents JSON_OBJECT() Create JSON object JSON_QUOTE() Quote JSON document JSON_REMOVE() Remove data from JSON document JSON_REPLACE() Replace values in JSON document JSON_SEARCH() Path to value within JSON document JSON_SET() Insert data into JSON document JSON_TYPE() Type of JSON value JSON_UNQUOTE() Unquote JSON value JSON_VALID() Whether JSON value is valid

1. 概述

MySQL里的json分為json array和json object。 $表示整個json對象,在索引數據時用下標(對于json array,從0開始)或鍵值(對于json object,含有特殊字符的key要用'括起來,比如$.'my name')。

例如:[3, {'a': [5, 6], 'b': 10}, [99, 100]],那么:

$[0]:3

$[1]: {'a': [5, 6], 'b': 10}

$[2] :[99, 100]

$[3] : NULL

$[1].a:[5, 6]

$[1].a[1]:6

$[1].b:10

$[2][0]:99

2. 比較規則

json中的數據可以用 =, <, <=, >, >=, <>, !=, and <=> 進行比較。但json里的數據類型可以是多樣的,那么在不同類型之間進行比較時,就有優先級了,高優先級的要大于低優先級的(可以用JSON_TYPE()函數查看類型)。優先級從高到低如下:

BLOBBITOPAQUEDATETIMETIMEDATEBOOLEANARRAYOBJECTSTRINGINTEGER, DOUBLENULL 

3. 常用函數3.1 創建函數

3.1.1 JSON_ARRAY

JSON_ARRAY(val1,val2,val3...)

生成一個包含指定元素的json數組。

mysql> SELECT JSON_ARRAY(1, 'abc', NULL, TRUE, CURTIME());+---------------------------------------------+| JSON_ARRAY(1, 'abc', NULL, TRUE, CURTIME()) |+---------------------------------------------+| [1, 'abc', null, true, '11:30:24.000000'] |+---------------------------------------------+

3.1.2 JSON_OBJECT

JSON_OBJECT(key1,val1,key2,val2...)

生成一個包含指定K-V對的json object。如果有key為NULL或參數個數為奇數,則拋錯。

mysql> SELECT JSON_OBJECT(’id’, 87, ’name’, ’carrot’);+-----------------------------------------+| JSON_OBJECT(’id’, 87, ’name’, ’carrot’) |+-----------------------------------------+| {'id': 87, 'name': 'carrot'} |+-----------------------------------------+

3.1.3 JSON_QUOTE

JSON_QUOTE(json_val)

將json_val用'號括起來。

mysql> SELECT JSON_QUOTE(’null’), JSON_QUOTE(’'null'’);+--------------------+----------------------+| JSON_QUOTE(’null’) | JSON_QUOTE(’'null'’) |+--------------------+----------------------+| 'null' | ''null'' |+--------------------+----------------------+mysql> SELECT JSON_QUOTE(’[1, 2, 3]’);+-------------------------+| JSON_QUOTE(’[1, 2, 3]’) |+-------------------------+| '[1, 2, 3]' |+-------------------------+

3.1.4 CONVERT

CONVERT(json_string,JSON)

mysql> select CONVERT(’{'mail': 'amy@gmail.com', 'name': 'Amy'}’,JSON);+----------------------------------------------------------+| CONVERT(’{'mail': 'amy@gmail.com', 'name': 'Amy'}’,JSON) |+----------------------------------------------------------+| {'mail': 'amy@gmail.com', 'name': 'Amy'} |+----------------------------------------------------------+3.2 查詢函數

3.2.1 JSON_CONTAINS

JSON_CONTAINS(json_doc, val[, path])

查詢json文檔是否在指定path包含指定的數據,包含則返回1,否則返回0。如果有參數為NULL或path不存在,則返回NULL。

mysql> SET @j = ’{'a': 1, 'b': 2, 'c': {'d': 4}}’;mysql> SET @j2 = ’1’;mysql> SELECT JSON_CONTAINS(@j, @j2, ’$.a’);+-------------------------------+| JSON_CONTAINS(@j, @j2, ’$.a’) |+-------------------------------+| 1 |+-------------------------------+mysql> SELECT JSON_CONTAINS(@j, @j2, ’$.b’);+-------------------------------+| JSON_CONTAINS(@j, @j2, ’$.b’) |+-------------------------------+| 0 |+-------------------------------+ mysql> SET @j2 = ’{'d': 4}’;mysql> SELECT JSON_CONTAINS(@j, @j2, ’$.a’);+-------------------------------+| JSON_CONTAINS(@j, @j2, ’$.a’) |+-------------------------------+| 0 |+-------------------------------+mysql> SELECT JSON_CONTAINS(@j, @j2, ’$.c’);+-------------------------------+| JSON_CONTAINS(@j, @j2, ’$.c’) |+-------------------------------+| 1 |+-------------------------------+

3.2.2 JSON_CONTAINS_PATH

JSON_CONTAINS_PATH(json_doc, one_or_all, path[, path] ...)

查詢是否存在指定路徑,存在則返回1,否則返回0。如果有參數為NULL,則返回NULL。

one_or_all只能取值'one'或'all',one表示只要有一個存在即可;all表示所有的都存在才行。

mysql> SET @j = ’{'a': 1, 'b': 2, 'c': {'d': 4}}’;mysql> SELECT JSON_CONTAINS_PATH(@j, ’one’, ’$.a’, ’$.e’);+---------------------------------------------+| JSON_CONTAINS_PATH(@j, ’one’, ’$.a’, ’$.e’) |+---------------------------------------------+| 1 |+---------------------------------------------+mysql> SELECT JSON_CONTAINS_PATH(@j, ’all’, ’$.a’, ’$.e’);+---------------------------------------------+| JSON_CONTAINS_PATH(@j, ’all’, ’$.a’, ’$.e’) |+---------------------------------------------+| 0 |+---------------------------------------------+mysql> SELECT JSON_CONTAINS_PATH(@j, ’one’, ’$.c.d’);+----------------------------------------+| JSON_CONTAINS_PATH(@j, ’one’, ’$.c.d’) |+----------------------------------------+| 1 |+----------------------------------------+mysql> SELECT JSON_CONTAINS_PATH(@j, ’one’, ’$.a.d’);+----------------------------------------+| JSON_CONTAINS_PATH(@j, ’one’, ’$.a.d’) |+----------------------------------------+| 0 |+----------------------------------------+

3.2.3 JSON_EXTRACT

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

從json文檔里抽取數據。如果有參數有NULL或path不存在,則返回NULL。如果抽取出多個path,則返回的數據封閉在一個json array里。

mysql> SELECT JSON_EXTRACT(’[10, 20, [30, 40]]’, ’$[1]’);+--------------------------------------------+| JSON_EXTRACT(’[10, 20, [30, 40]]’, ’$[1]’) |+--------------------------------------------+| 20 |+--------------------------------------------+mysql> SELECT JSON_EXTRACT(’[10, 20, [30, 40]]’, ’$[1]’, ’$[0]’);+----------------------------------------------------+| JSON_EXTRACT(’[10, 20, [30, 40]]’, ’$[1]’, ’$[0]’) |+----------------------------------------------------+| [20, 10] |+----------------------------------------------------+mysql> SELECT JSON_EXTRACT(’[10, 20, [30, 40]]’, ’$[2][*]’);+-----------------------------------------------+| JSON_EXTRACT(’[10, 20, [30, 40]]’, ’$[2][*]’) |+-----------------------------------------------+| [30, 40] |+-----------------------------------------------+

在MySQL 5.7.9+里可以用'->'替代。

mysql> SELECT c, JSON_EXTRACT(c, '$.id'), g > FROM jemp > WHERE JSON_EXTRACT(c, '$.id') > 1 > ORDER BY JSON_EXTRACT(c, '$.name');+-------------------------------+-----------+------+| c | c->'$.id' | g |+-------------------------------+-----------+------+| {'id': '3', 'name': 'Barney'} | '3' | 3 || {'id': '4', 'name': 'Betty'} | '4' | 4 || {'id': '2', 'name': 'Wilma'} | '2' | 2 |+-------------------------------+-----------+------+3 rows in set (0.00 sec) mysql> SELECT c, c->'$.id', g > FROM jemp > WHERE c->'$.id' > 1 > ORDER BY c->'$.name';+-------------------------------+-----------+------+| c | c->'$.id' | g |+-------------------------------+-----------+------+| {'id': '3', 'name': 'Barney'} | '3' | 3 || {'id': '4', 'name': 'Betty'} | '4' | 4 || {'id': '2', 'name': 'Wilma'} | '2' | 2 |+-------------------------------+-----------+------+3 rows in set (0.00 sec)

在MySQL 5.7.13+,還可以用'->>'表示去掉抽取結果的'號,下面三種效果是一樣的:

JSON_UNQUOTE( JSON_EXTRACT(column, path) ) JSON_UNQUOTE(column -> path) column->>path

mysql> SELECT * FROM jemp WHERE g > 2;+-------------------------------+------+| c | g |+-------------------------------+------+| {'id': '3', 'name': 'Barney'} | 3 || {'id': '4', 'name': 'Betty'} | 4 |+-------------------------------+------+2 rows in set (0.01 sec) mysql> SELECT c->’$.name’ AS name -> FROM jemp WHERE g > 2;+----------+| name |+----------+| 'Barney' || 'Betty' |+----------+2 rows in set (0.00 sec) mysql> SELECT JSON_UNQUOTE(c->’$.name’) AS name -> FROM jemp WHERE g > 2;+--------+| name |+--------+| Barney || Betty |+--------+2 rows in set (0.00 sec) mysql> SELECT c->>’$.name’ AS name -> FROM jemp WHERE g > 2;+--------+| name |+--------+| Barney || Betty |+--------+2 rows in set (0.00 sec)

3.2.4 JSON_KEYS

JSON_KEYS(json_doc[, path])

獲取json文檔在指定路徑下的所有鍵值,返回一個json array。如果有參數為NULL或path不存在,則返回NULL。

mysql> SELECT JSON_KEYS(’{'a': 1, 'b': {'c': 30}}’);+---------------------------------------+| JSON_KEYS(’{'a': 1, 'b': {'c': 30}}’) |+---------------------------------------+| ['a', 'b'] |+---------------------------------------+mysql> SELECT JSON_KEYS(’{'a': 1, 'b': {'c': 30}}’, ’$.b’);+----------------------------------------------+| JSON_KEYS(’{'a': 1, 'b': {'c': 30}}’, ’$.b’) |+----------------------------------------------+| ['c'] |+----------------------------------------------+

3.2.5 JSON_SEARCH

JSON_SEARCH(json_doc, one_or_all, search_str[, escape_char[, path] ...])

查詢包含指定字符串的paths,并作為一個json array返回。如果有參數為NUL或path不存在,則返回NULL。

one_or_all:'one'表示查詢到一個即返回;'all'表示查詢所有。 search_str:要查詢的字符串。 可以用LIKE里的’%’或‘_’匹配。 path:在指定path下查。

mysql> SET @j = ’['abc', [{'k': '10'}, 'def'], {'x':'abc'}, {'y':'bcd'}]’; mysql> SELECT JSON_SEARCH(@j, ’one’, ’abc’);+-------------------------------+| JSON_SEARCH(@j, ’one’, ’abc’) |+-------------------------------+| '$[0]' |+-------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’abc’);+-------------------------------+| JSON_SEARCH(@j, ’all’, ’abc’) |+-------------------------------+| ['$[0]', '$[2].x'] |+-------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’ghi’);+-------------------------------+| JSON_SEARCH(@j, ’all’, ’ghi’) |+-------------------------------+| NULL |+-------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’10’);+------------------------------+| JSON_SEARCH(@j, ’all’, ’10’) |+------------------------------+| '$[1][0].k' |+------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$’);+-----------------------------------------+| JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$’) |+-----------------------------------------+| '$[1][0].k' |+-----------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[*]’);+--------------------------------------------+| JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[*]’) |+--------------------------------------------+| '$[1][0].k'|+--------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$**.k’);+---------------------------------------------+| JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$**.k’) |+---------------------------------------------+| '$[1][0].k' |+---------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[*][0].k’);+-------------------------------------------------+| JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[*][0].k’) |+-------------------------------------------------+| '$[1][0].k' |+-------------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[1]’);+--------------------------------------------+| JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[1]’) |+--------------------------------------------+| '$[1][0].k'|+--------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[1][0]’);+-----------------------------------------------+| JSON_SEARCH(@j, ’all’, ’10’, NULL, ’$[1][0]’) |+-----------------------------------------------+| '$[1][0].k' |+-----------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’abc’, NULL, ’$[2]’);+---------------------------------------------+| JSON_SEARCH(@j, ’all’, ’abc’, NULL, ’$[2]’) |+---------------------------------------------+| '$[2].x' |+---------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’%a%’);+-------------------------------+| JSON_SEARCH(@j, ’all’, ’%a%’) |+-------------------------------+| ['$[0]', '$[2].x'] |+-------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’%b%’);+-------------------------------+| JSON_SEARCH(@j, ’all’, ’%b%’) |+-------------------------------+| ['$[0]', '$[2].x', '$[3].y'] |+-------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’%b%’, NULL, ’$[0]’);+---------------------------------------------+| JSON_SEARCH(@j, ’all’, ’%b%’, NULL, ’$[0]’) |+---------------------------------------------+| '$[0]' |+---------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’%b%’, NULL, ’$[2]’);+---------------------------------------------+| JSON_SEARCH(@j, ’all’, ’%b%’, NULL, ’$[2]’) |+---------------------------------------------+| '$[2].x' |+---------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’%b%’, NULL, ’$[1]’);+---------------------------------------------+| JSON_SEARCH(@j, ’all’, ’%b%’, NULL, ’$[1]’) |+---------------------------------------------+| NULL |+---------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’%b%’, ’’, ’$[1]’);+-------------------------------------------+| JSON_SEARCH(@j, ’all’, ’%b%’, ’’, ’$[1]’) |+-------------------------------------------+| NULL |+-------------------------------------------+ mysql> SELECT JSON_SEARCH(@j, ’all’, ’%b%’, ’’, ’$[3]’);+-------------------------------------------+| JSON_SEARCH(@j, ’all’, ’%b%’, ’’, ’$[3]’) |+-------------------------------------------+| '$[3].y' |+-------------------------------------------+3.3 修改函數

3.3.1 JSON_APPEND/JSON_ARRAY_APPEND

JSON_ARRAY_APPEND(json_doc, path, val[, path, val] ...)

在指定path的json array尾部追加val。如果指定path是一個json object,則將其封裝成一個json array再追加。如果有參數為NULL,則返回NULL。

mysql> SET @j = ’['a', ['b', 'c'], 'd']’;mysql> SELECT JSON_ARRAY_APPEND(@j, ’$[1]’, 1);+----------------------------------+| JSON_ARRAY_APPEND(@j, ’$[1]’, 1) |+----------------------------------+| ['a', ['b', 'c', 1], 'd'] |+----------------------------------+mysql> SELECT JSON_ARRAY_APPEND(@j, ’$[0]’, 2);+----------------------------------+| JSON_ARRAY_APPEND(@j, ’$[0]’, 2) |+----------------------------------+| [['a', 2], ['b', 'c'], 'd'] |+----------------------------------+mysql> SELECT JSON_ARRAY_APPEND(@j, ’$[1][0]’, 3);+-------------------------------------+| JSON_ARRAY_APPEND(@j, ’$[1][0]’, 3) |+-------------------------------------+| ['a', [['b', 3], 'c'], 'd'] |+-------------------------------------+ mysql> SET @j = ’{'a': 1, 'b': [2, 3], 'c': 4}’;mysql> SELECT JSON_ARRAY_APPEND(@j, ’$.b’, ’x’);+------------------------------------+| JSON_ARRAY_APPEND(@j, ’$.b’, ’x’) |+------------------------------------+| {'a': 1, 'b': [2, 3, 'x'], 'c': 4} |+------------------------------------+mysql> SELECT JSON_ARRAY_APPEND(@j, ’$.c’, ’y’);+--------------------------------------+| JSON_ARRAY_APPEND(@j, ’$.c’, ’y’) |+--------------------------------------+| {'a': 1, 'b': [2, 3], 'c': [4, 'y']} |+--------------------------------------+ mysql> SET @j = ’{'a': 1}’;mysql> SELECT JSON_ARRAY_APPEND(@j, ’$’, ’z’);+---------------------------------+| JSON_ARRAY_APPEND(@j, ’$’, ’z’) |+---------------------------------+| [{'a': 1}, 'z'] |+---------------------------------+

3.3.2 JSON_ARRAY_INSERT

JSON_ARRAY_INSERT(json_doc, path, val[, path, val] ...)

在path指定的json array元素插入val,原位置及以右的元素順次右移。如果path指定的數據非json array元素,則略過此val;如果指定的元素下標超過json array的長度,則插入尾部。

mysql> SET @j = ’['a', {'b': [1, 2]}, [3, 4]]’;mysql> SELECT JSON_ARRAY_INSERT(@j, ’$[1]’, ’x’);+------------------------------------+| JSON_ARRAY_INSERT(@j, ’$[1]’, ’x’) |+------------------------------------+| ['a', 'x', {'b': [1, 2]}, [3, 4]] |+------------------------------------+mysql> SELECT JSON_ARRAY_INSERT(@j, ’$[100]’, ’x’);+--------------------------------------+| JSON_ARRAY_INSERT(@j, ’$[100]’, ’x’) |+--------------------------------------+| ['a', {'b': [1, 2]}, [3, 4], 'x'] |+--------------------------------------+mysql> SELECT JSON_ARRAY_INSERT(@j, ’$[1].b[0]’, ’x’);+-----------------------------------------+| JSON_ARRAY_INSERT(@j, ’$[1].b[0]’, ’x’) |+-----------------------------------------+| ['a', {'b': ['x', 1, 2]}, [3, 4]] |+-----------------------------------------+mysql> SELECT JSON_ARRAY_INSERT(@j, ’$[2][1]’, ’y’);+---------------------------------------+| JSON_ARRAY_INSERT(@j, ’$[2][1]’, ’y’) |+---------------------------------------+| ['a', {'b': [1, 2]}, [3, 'y', 4]] |+---------------------------------------+mysql> SELECT JSON_ARRAY_INSERT(@j, ’$[0]’, ’x’, ’$[2][1]’, ’y’);+----------------------------------------------------+| JSON_ARRAY_INSERT(@j, ’$[0]’, ’x’, ’$[2][1]’, ’y’) |+----------------------------------------------------+| ['x', 'a', {'b': [1, 2]}, [3, 4]] |+----------------------------------------------------+

3.3.3 JSON_INSERT/JSON_REPLACE/JSON_SET

JSON_INSERT(json_doc, path, val[, path, val] ...)

在指定path下插入數據,如果path已存在,則忽略此val(不存在才插入)。

mysql> SET @j = ’{ 'a': 1, 'b': [2, 3]}’;mysql> SELECT JSON_INSERT(@j, ’$.a’, 10, ’$.c’, ’[true, false]’);+----------------------------------------------------+| JSON_INSERT(@j, ’$.a’, 10, ’$.c’, ’[true, false]’) |+----------------------------------------------------+| {'a': 1, 'b': [2, 3], 'c': '[true, false]'} |+----------------------------------------------------+

JSON_REPLACE(json_doc, path, val[, path, val] ...)

替換指定路徑的數據,如果某個路徑不存在則略過(存在才替換)。如果有參數為NULL,則返回NULL。

mysql> SET @j = ’{ 'a': 1, 'b': [2, 3]}’;mysql> SELECT JSON_REPLACE(@j, ’$.a’, 10, ’$.c’, ’[true, false]’);+-----------------------------------------------------+| JSON_REPLACE(@j, ’$.a’, 10, ’$.c’, ’[true, false]’) |+-----------------------------------------------------+| {'a': 10, 'b': [2, 3]} |+-----------------------------------------------------+

JSON_SET(json_doc, path, val[, path, val] ...)

設置指定路徑的數據(不管是否存在)。如果有參數為NULL,則返回NULL。

mysql> SET @j = ’{ 'a': 1, 'b': [2, 3]}’;mysql> SELECT JSON_SET(@j, ’$.a’, 10, ’$.c’, ’[true, false]’);+-------------------------------------------------+| JSON_SET(@j, ’$.a’, 10, ’$.c’, ’[true, false]’) |+-------------------------------------------------+| {'a': 10, 'b': [2, 3], 'c': '[true, false]'} |+-------------------------------------------------+mysql> SELECT JSON_INSERT(@j, ’$.a’, 10, ’$.c’, ’[true, false]’);+----------------------------------------------------+| JSON_INSERT(@j, ’$.a’, 10, ’$.c’, ’[true, false]’) |+----------------------------------------------------+| {'a': 1, 'b': [2, 3], 'c': '[true, false]'} |+----------------------------------------------------+mysql> SELECT JSON_REPLACE(@j, ’$.a’, 10, ’$.c’, ’[true, false]’);+-----------------------------------------------------+| JSON_REPLACE(@j, ’$.a’, 10, ’$.c’, ’[true, false]’) |+-----------------------------------------------------+| {'a': 10, 'b': [2, 3]} |+-----------------------------------------------------+

3.3.4 JSON_MERGE

JSON_MERGE(json_doc, json_doc[, json_doc] ...)

merge多個json文檔。規則如下:

如果都是json array,則結果自動merge為一個json array; 如果都是json object,則結果自動merge為一個json object; 如果有多種類型,則將非json array的元素封裝成json array再按照規則一進行mege。

mysql> SELECT JSON_MERGE(’[1, 2]’, ’[true, false]’);+---------------------------------------+| JSON_MERGE(’[1, 2]’, ’[true, false]’) |+---------------------------------------+| [1, 2, true, false] |+---------------------------------------+mysql> SELECT JSON_MERGE(’{'name': 'x'}’, ’{'id': 47}’);+-------------------------------------------+| JSON_MERGE(’{'name': 'x'}’, ’{'id': 47}’) |+-------------------------------------------+| {'id': 47, 'name': 'x'} |+-------------------------------------------+mysql> SELECT JSON_MERGE(’1’, ’true’);+-------------------------+| JSON_MERGE(’1’, ’true’) |+-------------------------+| [1, true]|+-------------------------+mysql> SELECT JSON_MERGE(’[1, 2]’, ’{'id': 47}’);+------------------------------------+| JSON_MERGE(’[1, 2]’, ’{'id': 47}’) |+------------------------------------+| [1, 2, {'id': 47}] |+------------------------------------+

3.3.5 JSON_REMOVE

JSON_REMOVE(json_doc, path[, path] ...)

移除指定路徑的數據,如果某個路徑不存在則略過此路徑。如果有參數為NULL,則返回NULL。

mysql> SET @j = ’['a', ['b', 'c'], 'd']’;mysql> SELECT JSON_REMOVE(@j, ’$[1]’);+-------------------------+| JSON_REMOVE(@j, ’$[1]’) |+-------------------------+| ['a', 'd'] |+-------------------------+

3.3.6 JSON_UNQUOTE

JSON_UNQUOTE(val)

去掉val的引號。如果val為NULL,則返回NULL。

mysql> SET @j = ’'abc'’;mysql> SELECT @j, JSON_UNQUOTE(@j);+-------+------------------+| @j | JSON_UNQUOTE(@j) |+-------+------------------+| 'abc' | abc |+-------+------------------+mysql> SET @j = ’[1, 2, 3]’;mysql> SELECT @j, JSON_UNQUOTE(@j);+-----------+------------------+| @j | JSON_UNQUOTE(@j) |+-----------+------------------+| [1, 2, 3] | [1, 2, 3] |+-----------+------------------+3.4 JSON特性查詢

3.4.1 JSON_DEEPTH

JSON_DEPTH(json_doc)

獲取json文檔的深度。如果參數為NULL,則返回NULL。

空的json array、json object或標量的深度為1。

mysql> SELECT JSON_DEPTH(’{}’), JSON_DEPTH(’[]’), JSON_DEPTH(’true’);+------------------+------------------+--------------------+| JSON_DEPTH(’{}’) | JSON_DEPTH(’[]’) | JSON_DEPTH(’true’) |+------------------+------------------+--------------------+|1 |1 | 1 |+------------------+------------------+--------------------+mysql> SELECT JSON_DEPTH(’[10, 20]’), JSON_DEPTH(’[[], {}]’);+------------------------+------------------------+| JSON_DEPTH(’[10, 20]’) | JSON_DEPTH(’[[], {}]’) |+------------------------+------------------------+| 2 | 2 |+------------------------+------------------------+mysql> SELECT JSON_DEPTH(’[10, {'a': 20}]’);+-------------------------------+| JSON_DEPTH(’[10, {'a': 20}]’) |+-------------------------------+| 3 |+-------------------------------+

3.4.2 JSON_LENGTH

JSON_LENGTH(json_doc[, path])

獲取指定路徑下的長度。如果參數為NULL,則返回NULL。 

長度的計算規則:

標量的長度為1; json array的長度為元素的個數; json object的長度為key的個數。

mysql> SELECT JSON_LENGTH(’[1, 2, {'a': 3}]’);+---------------------------------+| JSON_LENGTH(’[1, 2, {'a': 3}]’) |+---------------------------------+|3 |+---------------------------------+mysql> SELECT JSON_LENGTH(’{'a': 1, 'b': {'c': 30}}’);+-----------------------------------------+| JSON_LENGTH(’{'a': 1, 'b': {'c': 30}}’) |+-----------------------------------------+| 2 |+-----------------------------------------+mysql> SELECT JSON_LENGTH(’{'a': 1, 'b': {'c': 30}}’, ’$.b’);+------------------------------------------------+| JSON_LENGTH(’{'a': 1, 'b': {'c': 30}}’, ’$.b’) |+------------------------------------------------+| 1 |+------------------------------------------------+

3.4.3 JSON_TYPE

JSON_TYPE(json_val)

獲取json文檔的具體類型。如果參數為NULL,則返回NULL。

3.4.4 JSON_VALID

JSON_VALID(val)

判斷val是否為有效的json格式,是為1,不是為0。如果參數為NUL,則返回NULL。

mysql> SELECT JSON_VALID(’{'a': 1}’);+------------------------+| JSON_VALID(’{'a': 1}’) |+------------------------+| 1 |+------------------------+mysql> SELECT JSON_VALID(’hello’), JSON_VALID(’'hello'’);+---------------------+-----------------------+| JSON_VALID(’hello’) | JSON_VALID(’'hello'’) |+---------------------+-----------------------+| 0 | 1 |+---------------------+-----------------------+

到此這篇關于MySQL處理JSON常見函數的使用的文章就介紹到這了,更多相關MySQL JSON常見函數內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 国产91久久精品一区二区 | 欧美精品乱码久久久久久按摩 | 欧美污污| 精品久久久久久亚洲精品 | 欧美老妇交乱视频 | 国产精品国产三级国产aⅴ中文 | 日日精品 | 国产日韩一区 | 国产精品福利一区 | 国产成人精品综合 | 国产三级久久久久 | 精品国产一区二区三区成人影院 | 色网站免费视频 | 日韩色av| 欧美一区二区三区在线观看视频 | 欧美日韩久久精品 | 精品亚洲成a人在线观看 | 亚洲中国字幕 | 国产成人精品在线 | 黄色免费高清视频 | 亚洲成人av在线 | 免费黄色在线视频网址 | 蜜桃视频麻豆女神沈芯语免费观看 | www.91av在线 | 亚洲免费人成在线视频观看 | 国产精品色婷婷久久58 | 日韩久久精品一区二区 | 午夜影院在线 | 日韩中文视频 | 99伊人| 国产一级黄片毛片 | 国产黄色精品 | 国产一级免费网站 | 久久久国产日韩 | 日韩在线资源 | 日韩精品一区二区在线观看 | 亚洲第一福利视频 | 日韩中文视频 | 久久国产精品影视 | 日韩av手机在线免费观看 | 国产视频一区二区 | 激情婷婷综合 | 日本成人小视频 | 久久久蜜桃一区二区人 | 亚洲毛片在线观看 | 国产综合区 | 在线视频一区二区三区 | 91久久久久久久久久久久久久久久 | 中文字幕_第2页_高清免费在线 | 国产毛片毛片 | 3bmm在线观看视频免费 | 中文字幕亚洲欧美日韩在线不卡 | 亚洲第一免费网站 | 欧美九九九 | 91精品一区 | 男人天堂999 | 粉嫩国产精品一区二区在线观看 | 91精品国产91久久久久久久久久久久 | 羞羞视频在线播放 | 伊人激情网| 亚洲成人一区二区三区 | 亚洲欧美日韩另类精品一区二区三区 | 欧美日韩亚洲三区 | 黄色片免费在线观看视频 | 久久精品国产视频 | 午夜视频在线观看网站 | 91精品国产色综合久久不卡98口 | 亚洲精选久久 | 中文字幕免费视频观看 | 国产高清久久 | 午夜视频精品 | 精品午夜久久 | 九九人人 | 图片区 国产 欧美 另类 在线 | 中文字幕一区在线观看视频 | 国产精品高清一区二区 | 风间由美一区二区三区在线观看 | 一区二区三区四区免费看 | 亚洲毛片| 一区二区日韩 | 国产精品三级久久久久久电影 | 日韩久久一区 | 国产在线a | 欧美日韩一区二区三区在线观看 | 欧美,日韩 | 日韩综合视频在线观看 | 一区二区久久 | 亚洲精品中文字幕在线观看 | 国产日韩欧美一区 | 久久9久久| 国产精品www | 欧美xxxx色视频在线观看免费 | 欧美成人毛片 | 日本一区二区中文字幕 | 国产美女网站 | 亚洲在线免费观看 | 国产色 | 在线观看国产 | 91久久精品一区二区二区 | 国产日韩久久 | 在线观看免费视频亚洲 | 国产视频久久久久久 | 狠狠操狠狠操 | 欧美日韩在线播放 | 特黄一级 | 91精品国产高清一区二区三区 | 国偷自产av一区二区三区 | 91精品视频在线播放 | 99成人| 99国产精品 | 国产精品二区一区二区aⅴ污介绍 | 国产视频综合在线 | 国产在线中文字幕 | 欧美日韩免费一区二区三区 | 国产99免费 | 一级看片 | 北条麻妃国产九九九精品小说 | 国产精品久久久99 | 超碰在线播 | 福利在线看 | 国产日韩精品一区二区 | 亚洲综合首页 | 亚洲一区二区三区四区五区中文 | 香港三级日本三级a视频 | 狠狠天天 | 国产精品国产三级国产aⅴ入口 | 亚洲精品一区二区三区在线播放 | 三级成人在线 | 色欧美片视频在线观看 | 精品国产不卡一区二区三区 | 综合中文字幕 | 韩国xxxx性hd极品 | 午夜激情在线播放 | 午夜激情免费在线观看 | 久久综合一区 | 亚洲精品久久久一区二区三区 | 国产在线小视频 | 亚洲高清不卡视频 | 在线观看视频一区 | 国产精品久久久久久一区二区三区 | 欧美怡红院视频一区二区三区 | 国产一区影院 | 精品久久久久久久久久久久久久久久久久 | 亚洲国产精品一区二区三区 | 国产精品久久一区二区三区 | 激情网在线观看 | 国产日韩视频在线播放 | 91精品综合久久久久久五月天 | 欧美a在线| 一级a性色生活片毛片 | 国产中文字幕一区 | 久久成人国产精品 | 涩涩视频在线观看 | 亚洲国产精品第一区二区 | 国产一区二区三区四区在线观看 | 人人玩人人添人人澡97 | 永久免费av| www.久久久.com| 久久精品国产91精品亚洲高清 | 国产欧美一区二区精品忘忧草 | 97在线观看视频 | 在线不卡a资源高清 | 在线播放亚洲 | 久久精品国产99国产精品 | 久草视频在线播放 | 亚洲成人av在线 | 中文字幕免费看 | 欧美精品一区二区蜜臀亚洲 | 国产v日产∨综合v精品视频 | 午夜视频一区二区三区 | 成人日批| 国产一二三区在线观看 | 精品中文字幕在线 | 久久精品无码一区二区日韩av | 国产视频精品在线 | 日韩中文字幕一区二区高清99 | 色999国产| 91成人黄色 | 国产小视频在线 | 国产高清在线精品一区二区三区 | 亚洲精品一区二区三区在线播放 | 久久99精品视频 | 欧美第一区 | 后进极品白嫩翘臀在线视频 | 四色成人av永久网址 | 欧美精品一区二区在线观看 | 亚洲网站在线观看 | 免费在线成人 | 国产91福利视频 | 欧美一区二区三区免费 | 国产精品久久久久久久久久久免费看 | 久久综合久久受 | 精品在线一区二区 | 国产精品xxxx| 亚洲欧美激情另类 | 9999国产精品欧美久久久久久 | 久久在线视频 | 欧美成年网站 | 动漫羞免费网站中文字幕 | 亚洲午夜精品一区二区三区他趣 | 欧美一区视频 | 狠狠狠| 综合久久综合 | 一级毛片免费看 | 成人午夜网 | 亚洲毛片在线观看 | 国产亚洲网站 | 国产精品一区二区三区在线免费观看 | 一区二区三区有限公司 | 免费av片在线 | 亚洲天天干| 欧美一级c片| 欧美精品一区二区三区四区 | 日韩和的一区二区 | 99国产精品99久久久久久 | 99亚洲国产精品 | 欧洲成人一区 | 亚洲中国字幕 | 亚洲福利小视频 | 中文字幕一区二区三区乱码图片 | 午夜欧美一区二区三区在线播放 | 亚洲一区二区免费 | 国产老头老太作爱视频 | 亚洲精品在线视频 | www.亚洲| 毛片真人毛毛片毛片 | 色香蕉久久 | 在线欧美一区 | 欧美日韩国产综合在线 | 综合色播| 91成人在线免费视频 | 男人天堂网址 | 午夜在线 | 国精产品一区一区三区免费完 | a在线观看免费视频 | 99精品欧美一区二区三区 | 久久精品一 | 黄版视频在线观看 | 欧美在线小视频 | 亚洲高清久久 | 天堂中文视频在线观看 | 永久精品| 伊人超碰在线 | 人妖天堂狠狠ts人妖天堂狠狠 | 欧美嘿咻 | 中文字幕在线第一页 | 日韩看片| 欧美福利在线 | 国产精品久久久久久婷婷天堂 | 欧美视频在线免费 | 欧美一区二区三区爽大粗免费 | 欧美va天堂 | 久久久久久这里只有精品 | 99精品久久久国产一区二区三 | 午夜欧美| 久久这里只有精品首页 | 欧美成人精品一区二区三区 | 蜜臀网 | 国产精品国产三级国产aⅴ原创 | 国产精品一区亚洲二区日本三区 | 日韩手机电影 | 久久国产精品免费一区二区三区 | 精品亚洲永久免费精品 | 在线精品一区 | 国产精品福利在线观看 | 天天久久婷婷 | 国产欧美一区二区三区在线看 | 亚洲精品久久久蜜臀 | 日本在线免费 | 国产一区二区视频在线观看 | 国产欧美精品一区 | 男人久久天堂 | 91免费在线视频 | 亚洲精品免费在线观看 | 成人一级黄色大片 | 成人在线片 | 亚洲国内精品 | 国产综合久久 | 一级黄色大片在线 | 国产视频中文字幕 | 天天艹逼 | 一区二区三区的视频 | 91亚洲视频在线观看 | 日韩在线免费 | 久久久久久久久久久免费视频 | 国产玖玖 | 国产精品免费观看 | 午夜精品久久久久久久久 | 亚洲 中文 欧美 日韩在线观看 | 色婷婷国产精品综合在线观看 | 亚洲免费视频观看 | 国产一级片 | 99av| 日韩视频在线观看 | 免费观看视频毛片 | 色av综合在线 | 国产亚洲精品久久久久动 | 久久久久久国产精品 | 国产精品丝袜视频 | 狠狠爱综合 | 一区二区在线看 | 亚洲精品久久久久avwww潮水 | 国产精品久久久久久久免费大片 | 亚洲成人av在线播放 | 一区二区三区在线播放 | 国产亚洲一区二区精品 | 中文字幕日韩欧美 | 成人在线看片 | 亚洲精品1 | 91看片| 福利网在线 | 天天综合7799精品影视 | 91麻豆精品国产91久久久久久久久 | 综合久久综合 | 精品九九| 成人免费视频网站在线看 | 91精品国产91久久综合桃花 | 成人福利在线 | 色婷婷激情 | 最新中文字幕在线 | 91精品一区二区 | 男女全黄一级一级高潮免费看 | 九九热这里只有精品在线观看 | 亚洲高清在线 | 天天干夜夜爽 | 国产免费中文字幕 | 青青草久 | 国产欧美精品一区二区三区四区 | 成年人免费看片 | 亚洲国产99| 国产欧美一区二区三区在线看 | 99re国产| 高清国产视频 | 蜜桃av一区二区三区 | 日本手机在线视频 | 成人黄色在线视频 | 免费观看av毛片 | 中文字幕高清在线 | 久久精品无码一区二区日韩av | 中文字幕在线免费 | 亚洲高清在线 | 色综合激情 | 日韩久久精品一区二区 | 国产一区二区三区免费在线 | 亚洲美女网站 | 日韩av手机在线免费观看 | 日本激情在线 | 久久99精品久久久久久久青青日本 | 成年人免费在线视频 | 羞羞视频在线播放 | 麻豆高清免费国产一区 | 99re| 国产精品久久9 | 国产在线视频网站 | 久久精品a一级国产免视看成人 | 日韩三区视频 | 黄色拍拍视频 | 精品国产仑片一区二区三区 | 一区二区av | 日韩一级在线免费观看 | 日韩精品亚洲专区在线观看 | 国产精品久久国产愉拍 | 天天天干天天天操 | 九九久久影视 | 免费看91| 亚洲精品久久久久一区二区三区 | 国产一区二区自拍视频 | 1000部精品久久久久久久久 | 草草视频网站 | 国产精品18hdxxxⅹ在线 | 国产精品高潮呻吟av久久4虎 | 日韩中文字幕在线免费观看 | 成人在线不卡 | 一区二区三区视频免费在线观看 | 日韩欧美一级二级 | 人妖天堂狠狠ts人妖天堂狠狠 | 国产成人综合视频 | 久久国产精品久久 | av在线免费看片 | 成人国产精品视频 | 欧美日视频 | 国产精品欧美一区二区三区 | 一区二区三区精品视频 | 国产最好的精华液网站 | 成人看片网 | 中文在线一区二区 | 亚洲欧美高清 | 久久久av | 亚洲成人1区 | 中文字幕在线亚洲 | 日本理论片好看理论片 | 久久久久99精品国产片 | 亚洲成人三级 | 九九热精品视频 | 91精品久久久久久久久久入口 | 精品二区| 国产中文一区 | 午夜一区二区三区在线观看 | www.在线播放 | 成人黄色av| 欧美a在线 | 亚洲天堂久 | 欧美另类一二三四 | 日韩欧美视频 | www久久久久久久 | 午夜精品视频在线观看 | 久久久久久国产一级毛片高清版 | 中文字幕日韩欧美一区二区三区 | 成人免费在线观看 | 国产成人精品久久 | 国产精品久久久av | 亚洲精品美女在线观看 | 在线观看亚洲免费 | 国产高清一区 | 先锋影音在线 | 亚洲一区视频 | 91嫩草在线 | 中文字幕在线观看网站 | 国产成人精品免费视频大全 | 久久久久久国产免费视网址 | 在线成人免费观看www | 国产精品一区av | 一区二区成人 | 国产精品久久久爽爽爽麻豆色哟哟 | 午夜精品久久久久久久男人的天堂 | 热久久这里只有精品 | 国产视频999 | 成人免费视频观看视频 | 一区二区三区日韩 | 精品成人免费一区二区在线播放 | 色综合成人| 2018自拍偷拍 | 91佛爷在线观看 | 操操操影院 | 午夜精品视频在线观看 | 国产高清一区二区三区 | 99久久精品一区二区成人 | 美女久久 | 欧美激情伊人 | 国产精品成人av | 国产精品久久嫩一区二区免费 | 99精品全国免费观看视频软件 | 中文字幕日韩欧美 | 日韩欧美一区二区三区免费观看 | 中文字幕国产一区 | 久草视频网 | 人人艹人人爽 | 日中文字幕在线 | 亚洲91 | 人人草人人| 日韩在线播放一区 | 久久久www成人免费精品 | 亚洲精品一区在线观看 | 亚洲精品一区二区三区 | 亚洲欧美国产精品专区久久 | 国产一区二区视频在线 | 亚洲一区免费观看 | 一级欧美日韩 | 91精品久久久久久久久久 | 亚洲综合视频 | 青草视频网站 | 国产精品一区二区三区在线播放 | 精品国产第一国产综合精品 | 久久中文字幕一区 | 久久久精品免费观看 | 欧美日韩精品在线 | 天堂视频在线 | 狠狠操操 | 色噜噜狠狠狠综合曰曰曰88av | 欧美a级成人淫片免费看 | 精品一区在线视频 | 午夜电影网站 | 国产高清精品一区二区三区 | 在线免费观看一区 | 亚洲一区 日韩精品 中文字幕 | 免费看国产片在线观看 | 香蕉久久夜色精品国产使用方法 | 91精品国产欧美一区二区 | 成人免费xxxxxx视频 | 午夜欧美一区二区三区在线播放 | av一区二区三区在线观看 | 久久亚洲视频 | 国产毛片在线 | 真人女人一级毛片免费播放 | 色狠狠一区 | 91成人黄色| 美女久久久 | 一区二区三区四区在线视频 | 国产精品久久久久久久久久久久久 | 中文字幕在线观看1 | 精品国产成人 | 中文字幕亚洲一区二区va在线 | 一区二区福利 | 亚洲精选一区二区 | 超碰综合| 亚洲乱码国产乱码精品精的特点 | 天天插天天射天天干 | 国产精品一区在线看 | 久艹伊人| 欧洲精品一区 | 国产一区二区三区免费播放 | 久久精品小视频 | 欧美日韩中文字幕 | 国产精品久久久久9999赢消 | 日韩理论在线 | youjizz国产| 亚洲精品亚洲人成人网 | 国产精品日韩欧美 | 久久久久高清 | 日韩av福利 | 天堂在线www | 国产www在线 | 国产一区二区视频在线观看 | 日日日日干干干干 | 亚洲一区二区三区四区五区中文 | www中文字幕 | 成人a视频在线观看 | 一本大道综合伊人精品热热 | 精品国产乱码简爱久久久久久 | 亚洲伊人久久综合 | 精品九九 | 亚洲视频三区 | 国产精品精品视频一区二区三区 | 在线视频不卡一区 | 国产麻豆一区二区三区 | 91xxx在线观看 | a级在线观看免费 | 亚洲精品自在在线观看 | 午夜成人免费视频 | 亚洲精品久久一区二区三区 | 欧美日韩视频 | 国产精品三级久久久久久电影 | 国产高清一二三区 | 午夜性电影 | 这里有精品视频 | 中文字幕高清在线 | 久久精品a一级国产免视看成人 | 午夜资源 | 日韩精品一区二区三区在线观看 | 国产一二三在线 | 激情欧美日韩一区二区 | 99爱视频| 亚洲欧美一区二区三区不卡 | 性色av网 | 在线视频一区二区 | 亚洲一区在线视频 | 精品成人佐山爱一区二区 | 国产丝袜一区 | 日韩一二三区在线观看 | 久久久久久成人 | 一区二区三区日韩精品 | 能直接看的av网站 | 亚洲综合区 | 国产成人一区二区三区 | 99精品欧美一区二区三区综合在线 | 亚洲成人高清 | 日韩视频在线播放 | 亚洲男人的天堂网站 | 成人免费久久 | 999视频| 久久一区二区三区四区 | 国产精品亚洲成在人线 | 午夜视频 | 亚洲热在线观看 | 韩国电影久久影院 | 一区二区三区视频免费看 | 国产在线2 | 日韩欧美网 | 亚洲精品久久久一区二区三区 | 黄色大片网站在线观看 | 国产视频1区 | 国产不卡免费 | 午夜爽| 女人爽到高潮aaaa电影 | 久久久久久久 | 午夜精品视频 | 一区二区在线视频免费观看 | 亚洲天堂一区二区 | 成人免费视频网站在线观看 | 久久综合九色综合欧美狠狠 | 精品久久久久久久久久久久久 | 在线观看精品视频网站 | 国产亚洲精品久 | 久久人人爽人人爽 | 综合视频一区二区三区 | 亚洲国产精品99久久久久久久久 | 久久久久一区 | 人人爱超碰 | 国产精选久久 | 伊人久操 | 久久久久久久久综合 | 资源av | av在线免费观看网站 | 97成人精品视频在线观看 | 欧洲美女7788成人免费视频 | 国产精品欧美一区二区 | 极品久久久久久 | 青青草国产成人av片免费 | 看亚洲a级一级毛片 | 国产精品日韩精品 | 久久草视频 | 一区二区三区 在线 | 后人极品翘臀美女在线播放 | 久久一精品 | 色婷婷久久久久swag精品 | 久久久看片 | 91免费在线播放 | 欧美 日韩 中文 | 国产精品精品 | 国产精品久久国产精品99 gif | 91短视频版在线观看免费大全 | 91精品国产综合久久福利软件 | 在线色站 | 国产午夜精品久久 | 日韩精品91爱爱 |