mysql操縱json函式

2021-08-28 12:05:52 字數 2083 閱讀 9685

create table t1(name json); 

insert into t1 values(』 ,

「bool」: true,

「can」: false,

「learning」: null,

「chiness」: 「中文」

}' );

mysql> select json_depth(name) from t1;
返回json文字的深度 輸出結果----4; 

1 rows in set (0.02 sec)

mysql> select json_length(name) from t1;
返回json文字的長度 輸出結果----9

1 rows in set (0.01 sec)

mysql> select json_type(name) from t1;
返回json值得型別 輸出結果----object 

1 rows in set (0.04 sec)

mysql> select json_valid(『hello』) a, json_valid(『「hello」』) b;
判讀是否是合法的json型別 返回結果:a:0 b:1

1 row in set (0.00 sec)

mysql> select json_keys(name) as a from t1;
檢視儲存的json有哪些key 返回結果:array[

'a'=> [「hello」, 「link」, 「can」, 「num」, 「bool」, 「learning」, 「notlink」, 「obj」, 「chiness」],

]1 rows in set (0.05 sec)

mysql> select json_keys(name,』obj』) as a from t1;
檢視obj有哪些key 返回結果:array['a' =>[「more」,「who」,「arr」]]

5rowsinset(0.00sec)

mysql>select jsonsearch(name,′one′,′me′) as a from t1;
檢視第一次出現的位置 返回結果:array['「.obj.who」']

mysql> select json_search(name,』all』,』%aaaaa%』) as a from t1;
檢視所有包含aaaaa的位置 返回結果:aaaaa所在的key json_search(name,』all』,』%json%』) 

1rows in set (0.00 sec)

mysql> select json_extract(name,』link[0]』) as a from t1;
抽取值 返回結果:查詢的key所對應的value 如:「

1 rows in set (0.00 sec)

mysql> select json_extract(name,』obj[0].more[0]』) from t1;
抽取值 返回結果同上

1 rows in set (0.00 sec) 

或者使用下面的方式

mysql> select name,name->』key2』 from t1;
| 「value2」 |

追加記錄 在指定的json欄位追加key-value 引數(欄位名,key,value)

mysql> select json_remove(name,』name』) from t1;
刪除json資料 引數(欄位名,key)

mysql> select json_set(name,』name』,』ooo』) from t1;
有就替換,沒有就insert

mysql> select json_unquote(json_extract(name, 『name』)) as name from t1;
查詢結果去掉雙引號 返回欄位name中的key為name的集合,沒有「」

因為 json 不同於字串,所以如果用字串和 json 字段比較,是不會相等的可以通過

where key->'$.value'的形式去查詢 ->和->>結果等效

MySQL資料操縱

插入資料 insert insert into stu stuid,stuname,stu stubirth,stuschool values 20160111001 張曉雯 女 1997 08 17 飛行技術學院 遇到個問題解決一下 insert into stu values 201602110...

位元組操縱函式

名字以b開頭的第一組函式起源於4.2bsd,幾乎所有現今支援套接字函式的系統仍然提供他們,名字以men 表示記憶體 開頭的第二組函式起源於ansi c標準。支援ansi c函式庫的所有系統都提供他們。berkeley函式 include void bzero void dest,size t nby...

MySQL的常用JSON函式

1.json search col,type,val json search col key type,val col json格式的欄位名 key 要搜尋的col欄位的key,如果字段沒有key可以省略,例如單純的json字串 1 2 3 4 type 可以為 one 或者 all one 表示搜...