一、我們先建立乙個表,準備點資料
create table `json_test` (
`id` int(11) unsigned not null auto_increment comment 'id',
`json` json default null comment 'json資料',
二、檢索json列的字段
通過使用 -> 或 ->> 運算子檢索json列的字段
使用 -> 和 ->> 的區別是結果用了引號包裹。
三、處理json的一些函式
json_pretty(json_val) 以優雅的格式顯示json值
select id, json_pretty(json) from json_test\g;
json_contains(target, candidate[, path]) 判斷給定的candidate是否包含在target中,如果指定了path,則在指定路徑中進行查詢。
注意,注意,注意,這裡的candidate如果是數字,需要用單引號包裹,如果是字串,單引號裡再加上雙引號包裹。
select json_contains(json->'$[0].name', '"1號籃子"') from json_test;
select json_contains(json, '"1號籃子"', '$[0].name') from json_test;
json_contains_path(json_doc, one_or_all, path[, path] ...) 判斷json_doc中的路徑是否存在,通俗點說就是json中的key是否存在
select json_contains_path(json, 'one', '$[0].name', '$[0].test') from json_test;
第二個引數'one'表示只要有乙個key存在就返回1,否則為0
select json_contains_path(json, 'all', '$[0].name', '$[0].test') from json_test;
第二個引數'all'表示所有key存在才返回1,否則為0
json_set(json_doc, path, val[, path, val] ...) 插入或更新資料並返回結果
select json_set(json, '$[0].name', '2號籃子', '$[0].test', 'test') from json_test;
我們修改$[0].name的值,並新增乙個key為test,值為test的項
json_insert(json_doc, path, val[, path, val] ...) 插入資料並返回結果,但不替換現有值。
select json_insert(json, '$[0].name', '2號籃子', '$[0].exts', '擴充套件') from json_test;
這時$[0].name不會被更新,只會新增乙個字段$[0].exts
json_replace(json_doc, path, val[, path, val] ...) 替換現有值並返回結果
select json_replace(json, '$[0].name', '替換') from json_test;
將$[0].name中的值替換成新值
json_remove(json_doc, path[, path] ...) 刪除資料並返回結果
select json_remove(json, '$[0].name') from json_test;
刪除$[0].name這項資料
json_keys(json_doc[, path]) 獲取json文件中的所有鍵
select json_keys(json, '$[0]') from json_test;
獲取$[0]路徑下的所有鍵
json_length(json_doc[, path]) 獲取json文件的長度
select json_length(json, '$[0]') from json_test;
獲取$[0]下的元素數量
json_extract(json_doc, path[, path] ...) 返回json文件中的資料
select json_extract(json, '$[0]') from json_test;
select json_extract(json, '$[0].name') from json_test;
返回json文件指定路徑下的資料
json_array([val[, val] ...]) 建立json陣列
select json_array(1, '2', true, 5.6, null, now());
json_object([key, val[, key, val] ...]) 通過鍵值對, 建立json物件
select json_object('name', 'xiaoxu', 'age', 28, 'height', 1.72);
注意,這裡鍵和值要成對出現
json_merge_patch(json_doc, json_doc[, json_doc] ...) 合併json文件,如果有重複鍵,後面的資料覆蓋前面的
select json_merge_patch('', '');
json_merge_preserve(json_doc, json_doc[, json_doc] ...) 合併json文件,如果有重複鍵,則會通過陣列把值都儲存起來
select json_merge_preserve('', '');
json_quote(string) 通過用雙引號字元包裹並轉義內部引號和其他字元
select json_quote('你好"世界"');
json_unquote(json_val) 將轉義字元轉換回普通字元
select json_unquote('你好\\t\"世界\"');
MySQL5 7中新增的JSON型別的使用方法
建立表json test create table json test id int 11 auto increment primary key,person desc json engine innodb 插入一條記錄 insert into json test person desc value...
MySQL 5 7的新增功能
1 隨機 root 密碼 mysql 5.7 資料庫初始化完成後,會自動生成乙個 root localhost 使用者,root 使用者的密碼不為空,而是隨機產生乙個密碼。2 自定義 test 資料庫 mysql 5.7 預設安裝完成後沒有 test 資料庫。使用者可以自行建立 test 資料庫並對...
mysql5 7學習 mysql 5 7 學習
mysql uroot proot mysql5.7 mysql.user表沒有password欄位改 authentication string 一.建立使用者 命令 create user username host identified by password 例子 create user d...