激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - Mysql - mysql5.7 新增的json字段類型用法實例分析

mysql5.7 新增的json字段類型用法實例分析

2021-01-08 15:32懷素真 Mysql

這篇文章主要介紹了mysql5.7 新增的json字段類型用法,結合實例形式分析了mysql5.7 新增的json字段類型具體功能、使用方法及操作注意事項,需要的朋友可以參考下

本文實例講述了mysql5.7 新增的json字段類型用法。分享給大家供大家參考,具體如下:

一、我們先創建一個表,準備點數據

?
1
2
3
4
5
create table `json_test` (
 `id` int(11) unsigned not null auto_increment comment 'id',
 `json` json default null comment 'json數據',
 primary key (`id`)
) engine=innodb default charset=utf8mb4;

mysql5.7 新增的json字段類型用法實例分析

二、檢索json列的字段

通過使用 -> 或 ->> 運算符檢索json列的字段

?
1
select id, json->'$[0].items[0].name' from json_test;

mysql5.7 新增的json字段類型用法實例分析

?
1
select id, json->>'$[0].items[0].name' from json_test;

mysql5.7 新增的json字段類型用法實例分析

使用 -> 和 ->> 的區別是結果用了引號包裹。

三、處理json的一些函數

json_pretty(json_val) 以優雅的格式顯示json值

?
1
select id, json_pretty(json) from json_test\g;

json_contains(target, candidate[, path]) 判斷給定的candidate是否包含在target中,如果指定了path,則在指定路徑中進行查找。

注意,注意,注意,這里的candidate如果是數字,需要用單引號包裹,如果是字符串,單引號里再加上雙引號包裹。

?
1
2
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是否存在

?
1
select json_contains_path(json, 'one', '$[0].name', '$[0].test') from json_test;

第二個參數'one'表示只要有一個key存在就返回1,否則為0

?
1
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] ...) 插入或更新數據并返回結果

?
1
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] ...) 插入數據并返回結果,但不替換現有值。

?
1
select json_insert(json, '$[0].name', '2號籃子', '$[0].exts', '擴展') from json_test;

這時$[0].name不會被更新,只會新增一個字段$[0].exts

json_replace(json_doc, path, val[, path, val] ...) 替換現有值并返回結果

?
1
select json_replace(json, '$[0].name', '替換') from json_test;

將$[0].name中的值替換成新值

json_remove(json_doc, path[, path] ...)  刪除數據并返回結果

?
1
select json_remove(json, '$[0].name') from json_test;

刪除$[0].name這項數據

json_keys(json_doc[, path]) 獲取json文檔中的所有鍵

?
1
select json_keys(json, '$[0]') from json_test;

獲取$[0]路徑下的所有鍵

json_length(json_doc[, path]) 獲取json文檔的長度

?
1
select json_length(json, '$[0]') from json_test;

獲取$[0]下的元素數量

json_extract(json_doc, path[, path] ...)  返回json文檔中的數據

?
1
2
select json_extract(json, '$[0]') from json_test;
select json_extract(json, '$[0].name') from json_test;

返回json文檔指定路徑下的數據

json_array([val[, val] ...])  創建json數組

?
1
select json_array(1, '2', true, 5.6, null, now());

json_object([key, val[, key, val] ...]) 通過鍵值對, 創建json對象

?
1
select json_object('name', 'xiaoxu', 'age', 28, 'height', 1.72);

注意,這里鍵和值要成對出現

json_merge_patch(json_doc, json_doc[, json_doc] ...)  合并json文檔,如果有重復鍵,后面的數據覆蓋前面的

?
1
select json_merge_patch('{"name":"test1"}', '{"name":"test2"}');

json_merge_preserve(json_doc, json_doc[, json_doc] ...)  合并json文檔,如果有重復鍵,則會通過數組把值都保存起來

?
1
select json_merge_preserve('{"name":"test1"}', '{"name":"test2"}');

json_quote(string)  通過用雙引號字符包裹并轉義內部引號和其他字符

?
1
select json_quote('你好"世界"');

json_unquote(json_val)  將轉義字符轉換回普通字符

?
1
select json_unquote('你好\\t\"世界\"');

希望本文所述對大家MySQL數據庫計有所幫助。

原文鏈接:https://www.cnblogs.com/jkko123/p/10171167.html

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 精品一区久久久 | 国产一区视频在线观看免费 | 亚洲特黄a级毛片在线播放 激情视频免费看 | 国产黄网| 日韩精品无码一区二区三区 | 精品国产91久久久久久浪潮蜜月 | 四虎影院成人 | 亚洲一区二区三区在线看 | 亚洲精品成人18久久久久 | 精品国产乱码久久久久久久久 | 欧美18—19sex性hd按摩 | 日韩深夜视频 | 国内精品久久久久久久久久 | 欧美精品一区二区三区在线 | 久久久久久久免费视频 | 欧美韩国一区 | a黄毛片 | 久久精品欧美电影 | 久久777国产线看观看精品 | 国产成年人网站 | 久久色伦理资源站 | 国产免费一区二区三区在线能观看 | av电影观看| 一级黄色毛片播放 | 毛片视频网站在线观看 | 欧美爱爱视频免费看 | 久久另类视频 | 精品久久久久久久久久久下田 | av国产免费 | 国产妇女乱码一区二区三区 | 成年人在线免费播放视频 | 国产在线免费 | 日本欧美国产 | 亚洲一区二区三区视频免费 | 羞羞视频免费观看网站 | 亚洲精品欧美二区三区中文字幕 | 欧美 国产 综合 | 色播视频网站 | 黄色av网站在线观看 | 欧美一级淫片a免费播放口 91九色蝌蚪国产 | 毛毛片在线看 |