最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時間:2020年02月19日 10:30:07   作者:懷素真  
這篇文章主要介紹了mysql5.7 新增的json字段類型用法,結(jié)合實例形式分析了mysql5.7 新增的json字段類型具體功能、使用方法及操作注意事項,需要的朋友可以參考下

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

一、我們先創(chuàng)建一個表,準(zhǔn)備點數(shù)據(jù)

CREATE TABLE `json_test` (
 `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT 'ID',
 `json` json DEFAULT NULL COMMENT 'json數(shù)據(jù)',
 PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

二、檢索json列的字段

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

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

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

使用 -> 和 ->> 的區(qū)別是結(jié)果用了引號包裹。

三、處理json的一些函數(shù)

JSON_PRETTY(json_val) 以優(yōu)雅的格式顯示json值

select id, JSON_PRETTY(json) from json_test\G;

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

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

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;

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

select JSON_CONTAINS_PATH(json, 'all', '$[0].name', '$[0].test') from json_test;

第二個參數(shù)'all'表示所有key存在才返回1,否則為0

JSON_SET(json_doc, path, val[, path, val] ...) 插入或更新數(shù)據(jù)并返回結(jié)果

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] ...) 插入數(shù)據(jù)并返回結(jié)果,但不替換現(xiàn)有值。

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

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

JSON_REPLACE(json_doc, path, val[, path, val] ...) 替換現(xiàn)有值并返回結(jié)果

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

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

JSON_REMOVE(json_doc, path[, path] ...)  刪除數(shù)據(jù)并返回結(jié)果

select JSON_REMOVE(json, '$[0].name') from json_test;

刪除$[0].name這項數(shù)據(jù)

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]下的元素數(shù)量

JSON_EXTRACT(json_doc, path[, path] ...)  返回json文檔中的數(shù)據(jù)

select JSON_EXTRACT(json, '$[0]') from json_test;
select JSON_EXTRACT(json, '$[0].name') from json_test;

返回json文檔指定路徑下的數(shù)據(jù)

JSON_ARRAY([val[, val] ...])  創(chuàng)建json數(shù)組

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

JSON_OBJECT([key, val[, key, val] ...]) 通過鍵值對, 創(chuàng)建json對象

select JSON_OBJECT('name', 'xiaoxu', 'age', 28, 'height', 1.72);

注意,這里鍵和值要成對出現(xiàn)

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

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

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

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

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

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

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

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

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

希望本文所述對大家MySQL數(shù)據(jù)庫計有所幫助。

相關(guān)文章

  • 淺談MYSQL中樹形結(jié)構(gòu)表3種設(shè)計優(yōu)劣分析與分享

    淺談MYSQL中樹形結(jié)構(gòu)表3種設(shè)計優(yōu)劣分析與分享

    在開發(fā)中經(jīng)常遇到樹形結(jié)構(gòu)的場景,本文將以部門表為例對比幾種設(shè)計的優(yōu)缺點,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2021-09-09
  • MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則

    MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則

    這篇文章主要介紹了MySQL數(shù)據(jù)庫的索引原理與慢SQL優(yōu)化的5大原則,包括:建立索引的原則,慢查詢優(yōu)化基本步驟,慢查詢優(yōu)化案例,explain使用,需要的朋友可以參考下
    2023-02-02
  • mysql格式化小數(shù)保留小數(shù)點后兩位(小數(shù)點格式化)

    mysql格式化小數(shù)保留小數(shù)點后兩位(小數(shù)點格式化)

    今天遇到一個問題,格式化浮點數(shù)的問題,用format(col,2)保留兩位小數(shù)點,出現(xiàn)一個問題,例如下面的語句,后面我們給出解決方法
    2013-12-12
  • MySQL中join語句的基本使用教程及其字段對性能的影響

    MySQL中join語句的基本使用教程及其字段對性能的影響

    這篇文章主要介紹了MySQL中join語句的基本使用及其字段對性能的影響,舉了實例來觀測join所作用的不同字段字符集編碼所造成的性能差異,需要的朋友可以參考下
    2015-12-12
  • MySQL 查詢的排序、分頁相關(guān)

    MySQL 查詢的排序、分頁相關(guān)

    這篇文章主要介紹了MySQL 查詢的排序、分頁相關(guān)的相關(guān)知識,幫助大家更好的理解和使用數(shù)據(jù)庫,感興趣的朋友可以了解下
    2020-11-11
  • Mysql讀寫分離過期常用解決方案

    Mysql讀寫分離過期常用解決方案

    這篇文章主要介紹了Mysql讀寫分離過期常用解決方案,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-09-09
  • MySql數(shù)據(jù)庫中Select用法小結(jié)

    MySql數(shù)據(jù)庫中Select用法小結(jié)

    在程序開發(fā)中數(shù)據(jù)庫是必要知識點,今天小編給大家介紹mysql數(shù)據(jù)庫中的select用法,包括條件篩選、指定篩選和分組顯示查詢語句的寫法,非常不錯,對mysql select用法相關(guān)知識感興趣的朋友一起看看吧
    2016-10-10
  • MYSQL行列轉(zhuǎn)置方式

    MYSQL行列轉(zhuǎn)置方式

    本文介紹了如何使用MySQL和Navicat進行列轉(zhuǎn)行操作,首先,創(chuàng)建了一個名為`grade`的表,并插入多條數(shù)據(jù),然后,通過修改查詢SQL語句,使用`CASE`和`IF`函數(shù)將列轉(zhuǎn)換為行,總結(jié)指出,`SUM`可以替換為`MAX`、`MIN`、`AVG`等聚合函數(shù),并且在查詢中需要對普通字段進行分組
    2025-01-01
  • mysql服務(wù)設(shè)置遠程連接如何解決1251 client does not support問題

    mysql服務(wù)設(shè)置遠程連接如何解決1251 client does not su

    文章介紹了如何在遠程主機上配置MySQL環(huán)境,并使用Navicat連接遠程MySQL數(shù)據(jù)庫的步驟,包括前期準(zhǔn)備、mysql配置以及使用Navicat連接的過程
    2024-12-12
  • mysql exists與not exists實例詳解

    mysql exists與not exists實例詳解

    這篇文章主要介紹了mysql exists與not exists實例詳解的相關(guān)資料,鑒于 not exists 的效率往往要高于 not in , 所以一般情況下會使用前者替代后者,需要的朋友可以參考下
    2017-07-07

最新評論

鸡西市| 高邮市| 本溪| 湘乡市| 黎城县| 依兰县| 镇远县| 邵武市| 尼勒克县| 五大连池市| 许昌市| 甘南县| 临沂市| 云阳县| 温泉县| 库车县| 五原县| 扬中市| 孙吴县| 通辽市| 长白| 阿图什市| 淮北市| 东阳市| 庆元县| 玛多县| 晋宁县| 铅山县| 平湖市| 诸暨市| 延安市| 靖边县| 三明市| 堆龙德庆县| 翁源县| 原平市| 天柱县| 白沙| 平和县| 沾益县| 井陉县|