91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

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

發布時間:2020-09-17 22:24:47 來源:腳本之家 閱讀:183 作者:懷素真 欄目:MySQL數據庫

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

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

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列的字段

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

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

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

mysql5.7 新增的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('{"name":"test1"}', '{"name":"test2"}');

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

select JSON_MERGE_PRESERVE('{"name":"test1"}', '{"name":"test2"}');

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

select JSON_QUOTE('你好"世界"');

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

select JSON_UNQUOTE('你好\\t\"世界\"');

更多關于MySQL相關內容感興趣的讀者可查看本站專題:《MySQL查詢技巧大全》、《MySQL常用函數大匯總》、《MySQL日志操作技巧大全》、《MySQL事務操作技巧匯總》、《MySQL存儲過程技巧大全》及《MySQL數據庫鎖相關技巧匯總》

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

罗田县| 厦门市| 沽源县| 古丈县| 繁昌县| 南开区| 项城市| 德惠市| 揭西县| 花莲县| 扎兰屯市| 田东县| 东乡族自治县| 根河市| 抚顺县| 永春县| 赤壁市| 齐河县| 扶沟县| 余姚市| 桐庐县| 江阴市| 凤台县| 保定市| 拜城县| 西安市| 汤阴县| 德惠市| 西藏| 京山县| 扎兰屯市| 平陆县| 错那县| 吉水县| 同德县| 松潘县| 响水县| 贵定县| 泊头市| 内乡县| 英德市|