婷婷综合国产,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
    欧美在线免费播放| 日本午夜一本久久久综合| 91精品在线麻豆| 色婷婷av一区二区三区之一色屋| 亚洲成人福利片| 亚洲一区在线观看免费观看电影高清 | 亚洲一级二级在线| 国产一区二区三区在线看麻豆| 色综合久久88色综合天天6| 精品日韩av一区二区| 一区二区三区在线观看视频| 精品无人区卡一卡二卡三乱码免费卡 | 日韩一区二区影院| 日本一区二区电影| 狠狠色狠狠色合久久伊人| 欧美日韩亚洲另类| 亚洲黄一区二区三区| 国产成人免费高清| 精品少妇一区二区三区在线播放 | 欧美一区二区三区在线观看| 国产精品久久网站| 福利电影一区二区三区| 久久夜色精品一区| 久久69国产一区二区蜜臀| 欧美日韩一区在线| 亚洲一二三专区| 欧美午夜理伦三级在线观看| 亚洲伦理在线免费看| jizzjizzjizz欧美| 亚洲图片另类小说| av激情综合网| 国产精品福利一区| 91一区二区在线| 亚洲欧洲综合另类在线 | 欧美不卡视频一区| 日韩主播视频在线| 欧美一区二区精美| 久久99精品网久久| 久久久久久久免费视频了| 国产精品一区二区三区四区| 亚洲精品在线免费播放| 粉嫩av一区二区三区| 中文字幕av一区二区三区高| 91一区二区三区在线观看| 亚洲午夜久久久久久久久电影网| 欧美日韩国产系列| 精品一区二区三区的国产在线播放| 欧美xxxxx裸体时装秀| 国产精品系列在线观看| 国产成人在线影院| 91丝袜呻吟高潮美腿白嫩在线观看| 日韩一区二区免费在线电影| 玉米视频成人免费看| 成人免费电影视频| 久久女同性恋中文字幕| 奇米影视7777精品一区二区| 一本大道久久a久久综合| 久久久久久久久久久久久久久99| 天天影视网天天综合色在线播放| 97se亚洲国产综合自在线| 久久久久久久久久久电影| 日本中文一区二区三区| 在线观看视频一区二区| 亚洲日本青草视频在线怡红院| 国产不卡免费视频| 欧美高清在线视频| 国产a级毛片一区| 欧美怡红院视频| 亚洲最新视频在线观看| 日韩精品专区在线| 91久久线看在观草草青青| 麻豆国产欧美日韩综合精品二区| 国产精品视频在线看| 亚洲靠逼com| 欧美不卡在线视频| 欧美在线三级电影| www.视频一区| 美女任你摸久久 | 日本一区二区三级电影在线观看 | 精品一区二区在线免费观看| 亚洲欧洲精品天堂一级| 欧美一区二区人人喊爽| 91在线国产福利| 国产一区在线观看麻豆| 香蕉成人啪国产精品视频综合网| 麻豆国产精品一区二区三区| 日韩视频一区二区三区在线播放| 美女久久久精品| 中文一区二区在线观看| 欧亚一区二区三区| 免费在线成人网| 久久理论电影网| 91日韩精品一区| 日韩在线一区二区| 亚洲精品一区二区三区影院| 成人v精品蜜桃久久一区| 亚洲精品日韩专区silk| 91精品中文字幕一区二区三区| 精品一区二区三区视频在线观看 | 亚洲成人免费电影| 久久久综合九色合综国产精品| 91视频在线看| 美女精品自拍一二三四| 综合网在线视频| 欧美大片拔萝卜| 色呦呦国产精品| 久久99久久99| 亚洲一区在线视频观看| 337p粉嫩大胆色噜噜噜噜亚洲| 91亚洲精华国产精华精华液| 六月丁香婷婷色狠狠久久| 亚洲柠檬福利资源导航| 精品免费视频.| 欧美性感一类影片在线播放| 国产精品77777竹菊影视小说| 亚洲最大成人综合| 国产欧美日韩激情| 欧美一区二区三区公司| 色综合天天狠狠| 国产成人小视频| 日产国产欧美视频一区精品| 1024亚洲合集| 久久精品视频免费观看| 777欧美精品| 色综合亚洲欧洲| 成人黄色电影在线 | 亚洲五月六月丁香激情| 欧美激情一区三区| 欧美tickle裸体挠脚心vk| 欧美中文一区二区三区| 91视频一区二区| 成人性生交大合| 中文字幕欧美三区| 久久久久久麻豆| 亚洲视频免费观看| 日韩激情av在线| 国产经典欧美精品| 在线观看欧美精品| 精品久久久久久久久久久院品网 | 国产欧美日本一区二区三区| 亚洲激情五月婷婷| 天天操天天色综合| 国产精品18久久久久久久网站| 成人白浆超碰人人人人| 欧美日韩国产首页| 国产欧美视频一区二区| 亚洲成人7777| 丁香婷婷深情五月亚洲| 制服视频三区第一页精品| 国产色产综合色产在线视频| 午夜视频一区在线观看| 丁香激情综合国产| 91精品国产一区二区三区香蕉 | 日韩中文字幕一区二区三区| 国产伦精品一区二区三区在线观看 | 欧美变态tickle挠乳网站| 中文字幕精品三区| 日本中文字幕一区| 色婷婷久久久综合中文字幕| 精品理论电影在线| 午夜成人免费电影| 91亚洲资源网| 日本一区二区三区四区在线视频 | 久久综合色婷婷| 午夜视频一区二区三区| 99国产一区二区三精品乱码| 欧美成人性福生活免费看| 亚洲婷婷综合色高清在线| 精品一区二区三区免费| 91精品国产欧美日韩| 亚洲一区二区三区激情| 99在线视频精品| 久久久美女艺术照精彩视频福利播放| 亚洲影院久久精品| 99久久国产综合精品女不卡| 久久人人97超碰com| 蜜桃视频免费观看一区| 欧美视频在线不卡| 一区二区三区欧美激情| 成人av网站免费观看| 久久精品人人做| 国模无码大尺度一区二区三区| 日韩一区二区三区免费看| 亚洲最新视频在线观看| 日本精品视频一区二区三区| 亚洲欧美中日韩| 成人国产精品免费观看| 国产亚洲婷婷免费| 成人网男人的天堂| 国产欧美日韩在线观看| 豆国产96在线|亚洲| 国产精品狼人久久影院观看方式| 国产在线不卡视频| 国产欧美日韩激情| 成人av网站大全| 一区二区三区四区高清精品免费观看| 91伊人久久大香线蕉| 亚洲国产一区二区在线播放| 欧美区视频在线观看| 六月丁香综合在线视频|