婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > MySQL中json字段的操作方法

MySQL中json字段的操作方法

熱門標簽:廣東人工電話機器人 湖南人工外呼系統多少錢 南通自動外呼系統軟件 石家莊電商外呼系統 申請外呼電話線路 芒果電話機器人自動化 日照旅游地圖標注 信陽穩定外呼系統運營商 百度地圖圖標標注中心

   MySQL5.7.8中引入了json字段,這種類型的字段使用的頻率比較低,但是在實際操作中,有些業務仍然在用,我們以此為例,介紹下json字段的操作方法:

還是從例子看起:

mysql> create table test1(id int,info json);
Query OK, 0 rows affected (0.02 sec)

mysql> insert into test1 values (1,'{"name":"yeyz","age":26}'),(2,'{"name":"zhangsan","age":30}'),(3,'{"name":"lisi","age":35}');
Query OK, 3 rows affected (0.02 sec)
Records: 3 Duplicates: 0 Warnings: 0

mysql> select * from test1;
+------+---------------------------------+
| id  | info              |
+------+---------------------------------+
|  1 | {"age": 26, "name": "yeyz"}   |
|  2 | {"age": 30, "name": "zhangsan"} |
|  3 | {"age": 35, "name": "lisi"}   |
+------+---------------------------------+
3 rows in set (0.00 sec)

    首先我們創建了一個表test1,其中id是int字段,info是json字段,插入了三條數據,如上:

mysql> select * from test1 where json_extract(info,"$.age")>=30;
+------+---------------------------------+
| id  | info              |
+------+---------------------------------+
|  2 | {"age": 30, "name": "zhangsan"} |
|  3 | {"age": 35, "name": "lisi"}   |
+------+---------------------------------+
2 rows in set (0.00 sec)

   我們可以通過json_extract的方法得到json中的內容。其中:

1、$符號代表的是json的根目錄,

2、我們使用$.age相當于取出來了json中的age字段,

3、當然,在函數最前面,應該寫上字段名字info

下面來看json中常用的函數:

a、json_valid判斷是否是json字段,如果是,返回1,如果不是,返回0

mysql> select json_valid(2);
+---------------+
| json_valid(2) |
+---------------+
|       0 |
+---------------+
1 row in set (0.01 sec)
mysql> select json_valid('{"num":2}');
+-------------------------+
| json_valid('{"num":2}') |
+-------------------------+
|            1 |
+-------------------------+
1 row in set (0.00 sec)

mysql> select json_valid('2');
+-----------------+
| json_valid('2') |
+-----------------+
|        1 |
+-----------------+
1 row in set (0.00 sec)
mysql> select json_valid('name');
+--------------------+
| json_valid('name') |
+--------------------+
|         0 |
+--------------------+
1 row in set (0.00 sec)

   這里需要注意的是,如果傳入了字符串2,那么,返回結果是1

b、json_keys傳回執行json字段最上一層的key值

mysql> select json_keys('{"name":"yeyz","score":100}');
+------------------------------------------+
| json_keys('{"name":"yeyz","score":100}') |
+------------------------------------------+
| ["name", "score"]            |
+------------------------------------------+
1 row in set (0.01 sec)
mysql> select json_keys('{"name":"yeyz","score":{"math":100,"English":95}}');
+----------------------------------------------------------------+
| json_keys('{"name":"yeyz","score":{"math":100,"English":95}}') |
+----------------------------------------------------------------+
| ["name", "score"]                       |
+----------------------------------------------------------------+
1 row in set (0.00 sec)
#如果有多層,可以在最后面使用$的方法,拿到其中的某一層的目錄
mysql> select json_keys('{"name":"yeyz","score":{"math":100,"English":95}}','$.score');
+--------------------------------------------------------------------------+
| json_keys('{"name":"yeyz","score":{"math":100,"English":95}}','$.score') |
+--------------------------------------------------------------------------+
| ["math", "English"]                           |
+--------------------------------------------------------------------------+
1 row in set (0.00 sec)

c、json_length函數,返回最上一層的key個數,如果想取到中間的某一層,則可以使用$的方法,如下:

mysql> select json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}');
+---------------------------------------------------------------------------+
| json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}') |
+---------------------------------------------------------------------------+
|                                     3 |
+---------------------------------------------------------------------------+
1 row in set (0.00 sec)

mysql> select json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}','$.score');
+-------------------------------------------------------------------------------------+
| json_length('{"name":"yeyz","score":{"math":100,"English":95},"age":26}','$.score') |
+-------------------------------------------------------------------------------------+
|                                          2 |
+-------------------------------------------------------------------------------------+
1 row in set (0.00 sec)

d、json_depth函數,json文件的深度,測試例子如下:

mysql> select json_depth('{"aaa":1}'),json_depth('{}');
+-------------------------+------------------+
| json_depth('{"aaa":1}') | json_depth('{}') |
+-------------------------+------------------+
|            2 |        1 |
+-------------------------+------------------+
1 row in set (0.00 sec)

mysql> select json_depth('{"name":"yeyz","score":{"math":100,"English":95},"age":26}');
+--------------------------------------------------------------------------+
| json_depth('{"name":"yeyz","score":{"math":100,"English":95},"age":26}') |
+--------------------------------------------------------------------------+
|                                    3 |
+--------------------------------------------------------------------------+
1 row in set (0.00 sec)

   這里需要注意的是,形如{'aa':1}這種形式的json,其深度是2

e、json_contains_path函數檢索json中是否有一個或者多個成員。

mysql> set @j='{"a":1,"b":2,"c":{"d":4}}';
Query OK, 0 rows affected (0.00 sec)
#one的意思是只要包含一個成員,就返回1
mysql> select json_contains_path(@j,'one','$.a','$.e');
+------------------------------------------+
| json_contains_path(@j,'one','$.a','$.e') |
+------------------------------------------+
|                    1 |
+------------------------------------------+
1 row in set (0.00 sec)
#all的意思是所有的成員都包含,才返回1
mysql> select json_contains_path(@j,'all','$.a','$.e');
+------------------------------------------+
| json_contains_path(@j,'all','$.a','$.e') |
+------------------------------------------+
|                    0 |
+------------------------------------------+
1 row in set (0.01 sec)

mysql> select json_contains_path(@j,'one','$.c.d');
+--------------------------------------+
| json_contains_path(@j,'one','$.c.d') |
+--------------------------------------+
|                  1 |
+--------------------------------------+
1 row in set (0.00 sec)

mysql> select json_contains_path(@j,'one','$.a.d');
+--------------------------------------+
| json_contains_path(@j,'one','$.a.d') |
+--------------------------------------+
|                  0 |
+--------------------------------------+
1 row in set (0.00 sec)

f、json_type函數,判斷json中的成員的類型,需要和json_extract結合起來使用。

mysql> select * from test1;
+------+---------------------------------+
| id  | info              |
+------+---------------------------------+
|  1 | {"age": 26, "name": "yeyz"}   |
|  2 | {"age": 30, "name": "zhangsan"} |
|  3 | {"age": 35, "name": "lisi"}   |
+------+---------------------------------+
3 rows in set (0.00 sec)
#判斷name的類型
mysql> select json_type(json_extract(info,"$.name")) from test1;
+----------------------------------------+
| json_type(json_extract(info,"$.name")) |
+----------------------------------------+
| STRING                 |
| STRING                 |
| STRING                 |
+----------------------------------------+
3 rows in set (0.00 sec)
#判斷age的類型
mysql> select json_type(json_extract(info,"$.age")) from test1;
+---------------------------------------+
| json_type(json_extract(info,"$.age")) |
+---------------------------------------+
| INTEGER                |
| INTEGER                |
| INTEGER                |
+---------------------------------------+
3 rows in set (0.00 sec)
#判斷name和age組合起來的類型,可以看到是array
mysql> select json_type(json_extract(info,"$.name","$.age")) from test1;
+------------------------------------------------+
| json_type(json_extract(info,"$.name","$.age")) |
+------------------------------------------------+
| ARRAY                     |
| ARRAY                     |
| ARRAY                     |
+------------------------------------------------+
3 rows in set (0.00 sec)

g、*的作用,所有的值,看下面的例子。

{
 "a":1,
 "b":2,
 "c":
   {
    "d":4
   }
 "e":
   {
   "d":
     {
     "ddd":
     "5"
     }
   }
}
mysql> set @j='{"a":1,"b":2,"c":{"d":4},"e":{"d":{"ddd":"5"}}}';
Query OK, 0 rows affected (0.00 sec)
#所有成員
mysql> select json_extract(@j,'$.*');
+---------------------------------------+
| json_extract(@j,'$.*')        |
+---------------------------------------+
| [1, 2, {"d": 4}, {"d": {"ddd": "5"}}] |
+---------------------------------------+
1 row in set (0.00 sec)
#所有成員中的d成員
mysql> select json_extract(@j,'$.*.d');
+--------------------------+
| json_extract(@j,'$.*.d') |
+--------------------------+
| [4, {"ddd": "5"}]    |
+--------------------------+
1 row in set (0.00 sec)

以上就是MySQL中json字段的操作方法的詳細內容,更多關于MySQL json字段的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 深入淺出講解MySQL的并行復制
  • MySQL刪除了記錄不生效的原因排查
  • MySQL CHAR和VARCHAR存儲、讀取時的差別
  • MySQL學習教程之聚簇索引
  • 淺談MySQL大表優化方案
  • MySQL8.0中的降序索引
  • 詳解mysql中的存儲引擎
  • 記一次MySQL的優化案例
  • mysql 主從復制如何跳過報錯
  • 淺析MySQL并行復制

標簽:阿里 牡丹江 惠州 合肥 呼和浩特 沈陽 天津 公主嶺

巨人網絡通訊聲明:本文標題《MySQL中json字段的操作方法》,本文關鍵詞  MySQL,中,json,字段,的,操作,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《MySQL中json字段的操作方法》相關的同類信息!
  • 本頁收集關于MySQL中json字段的操作方法的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    亚洲免费大片在线观看| 日韩欧美国产系列| 久久蜜桃av一区二区天堂 | 欧美一区二区视频观看视频| 欧美高清在线一区| av在线这里只有精品| 亚洲人成精品久久久久| 日本道色综合久久| 亚洲丝袜另类动漫二区| 欧美精品在线一区二区三区| 日韩精品国产精品| 国产色产综合色产在线视频| 成人av网站大全| 一区二区久久久| 久久综合九色综合97婷婷女人| 丰满亚洲少妇av| 亚洲蜜桃精久久久久久久| 日韩视频国产视频| 国产精品一色哟哟哟| 欧美高清精品3d| 日韩一区二区三区视频| 国产在线播放一区| 精品国产91乱码一区二区三区 | 国产激情91久久精品导航| 国产女人水真多18毛片18精品视频| 色综合久久88色综合天天6| 国产日韩三级在线| 91美女视频网站| 麻豆精品一区二区三区| 国产视频911| 欧美日韩一级黄| 粉嫩蜜臀av国产精品网站| 亚洲国产精品欧美一二99| 欧美老肥妇做.爰bbww| 不卡av免费在线观看| 亚洲一区二区综合| 国产精品女同互慰在线看| 欧美色老头old∨ideo| 精品一区二区久久| 天天影视涩香欲综合网| 欧美国产日韩在线观看| 在线亚洲人成电影网站色www| 国产精品1区2区3区在线观看| 亚洲一区二区精品视频| 国产视频不卡一区| 2023国产精品自拍| 欧美日韩精品久久久| 色婷婷亚洲精品| 国产九色精品成人porny| 亚洲国产视频a| 洋洋av久久久久久久一区| 欧美不卡123| 国产老妇另类xxxxx| 久久精品噜噜噜成人88aⅴ| 伊人婷婷欧美激情| 亚洲欧美日韩在线| 国产亚洲欧美在线| 日韩亚洲欧美成人一区| 欧美乱妇一区二区三区不卡视频| 成人网男人的天堂| 中文字幕一区二区三区在线不卡| 欧美视频日韩视频| 亚洲猫色日本管| 欧美性生活久久| 成人av一区二区三区| 蜜桃精品在线观看| 视频一区二区欧美| 亚洲色图在线看| 国产欧美一区二区在线观看| 欧洲一区在线电影| 99精品久久久久久| 风间由美性色一区二区三区| 午夜久久久影院| 欧美国产精品中文字幕| 日韩精品一区二区三区视频播放| 国产一区欧美一区| 久草热8精品视频在线观看| 91精品国产乱码| 欧美午夜寂寞影院| 色狠狠桃花综合| 国产老女人精品毛片久久| 国产精华液一区二区三区| 国内成人精品2018免费看| 九九在线精品视频| 国产精品麻豆一区二区| 91精品综合久久久久久| 国产精品亚洲一区二区三区在线 | 欧美一区二区三区喷汁尤物| 寂寞少妇一区二区三区| 91美女片黄在线观看91美女| 国产精品电影一区二区| 国产成人久久精品77777最新版本| 国产一区二区导航在线播放| 亚洲精品菠萝久久久久久久| 日韩你懂的电影在线观看| 久久激情五月激情| 久久97超碰色| 美国av一区二区| 亚洲综合色噜噜狠狠| 91视频观看免费| 亚洲成人自拍网| 色婷婷综合久久久中文一区二区| 51精品国自产在线| 99精品偷自拍| 国产精品中文字幕日韩精品 | 日本久久一区二区| 日韩在线卡一卡二| 国产精品免费视频一区| 欧美日韩www| 欧美午夜片在线看| 在线精品视频免费播放| 日韩视频在线观看一区二区| 天天av天天翘天天综合网色鬼国产| 不卡视频一二三| 欧美精品 国产精品| 欧美日韩一区二区在线观看| 欧美成人精品福利| 亚洲自拍偷拍av| 欧美电影在线免费观看| 亚洲综合一二三区| 日韩不卡免费视频| 久久99精品一区二区三区| 成人va在线观看| 日韩欧美久久一区| 久久久精品国产免大香伊 | 亚洲成人午夜影院| 国产精品18久久久久久久久 | 波多野结衣欧美| bt欧美亚洲午夜电影天堂| 欧美一区二区三区播放老司机| 国产精品久久久久桃色tv| 久久99精品一区二区三区三区| 在线观看欧美黄色| 一区二区国产盗摄色噜噜| 91黄色免费网站| 亚洲理论在线观看| www.成人网.com| 亚洲欧美乱综合| 色综合天天综合网天天狠天天| 久久久蜜桃精品| 国产精品一区二区不卡| 久久婷婷成人综合色| 亚洲国产精品自拍| 欧美电影影音先锋| 视频一区视频二区中文字幕| 美女一区二区三区在线观看| 在线日韩av片| 欧美日韩国产不卡| 一区二区三区丝袜| 精品国精品自拍自在线| 国产一区二区免费在线| 国产亚洲一二三区| 国产成人综合视频| 久久精品夜夜夜夜久久| 日韩福利电影在线观看| 中文字幕欧美国产| 欧美中文字幕亚洲一区二区va在线| 亚洲一区二区视频在线观看| 在线观看视频一区二区 | 欧美日韩一本到| 爽好久久久欧美精品| 精品不卡在线视频| 成人av在线一区二区三区| 久久亚洲一区二区三区四区| 国产69精品久久777的优势| 久久久久久99久久久精品网站| 国产成人日日夜夜| 亚洲国产精品一区二区久久| 国产偷国产偷精品高清尤物| 欧美美女一区二区在线观看| 国产成人午夜片在线观看高清观看 | 欧美高清dvd| 欧美二区三区91| 色婷婷综合激情| 亚洲摸摸操操av| 午夜成人在线视频| 亚洲综合色成人| 国产精品每日更新| 国产精品午夜久久| 国产精品少妇自拍| 国产日韩欧美在线一区| 91精品国产色综合久久不卡电影 | 国产成人精品一区二| 欧美tk丨vk视频| 国产伦精品一区二区三区免费| 欧美精品日韩一本| 日本在线不卡视频一二三区| 精品免费一区二区三区| 亚洲欧美日韩中文字幕一区二区三区 | 精品捆绑美女sm三区| 国产不卡在线播放| 国产一区中文字幕| 国产很黄免费观看久久| 韩国v欧美v亚洲v日本v| 欧美激情一区不卡| 亚洲电影一区二区三区| 一区二区三区.www| 三级一区在线视频先锋 | 日韩亚洲欧美综合| 久久午夜免费电影|