欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品

主頁 > 知識庫 > 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字段的操作方法的相關信息資訊供網民參考!
  • 推薦文章
    欧美阿v视频在线大全_亚洲欧美中文日韩V在线观看_www性欧美日韩欧美91_亚洲欧美日韩久久精品
  • <rt id="w000q"><acronym id="w000q"></acronym></rt>
  • <abbr id="w000q"></abbr>
    <rt id="w000q"></rt>
    最新黄色av网址| 国产精品久线在线观看| 亚洲午夜电影在线| 99视频热这里只有精品免费| 一级片一级片一级片| 久久精品人人做人人爽97| 久久电影网电视剧免费观看| 麻豆国产精品一区| 日韩欧美亚洲一区二区| 日韩成人伦理电影在线观看| 日韩综合第一页| 欧美精品日韩一区| 午夜精品久久久久久久久久| 制服丝袜在线第一页| 欧美日韩久久不卡| 亚洲线精品一区二区三区八戒| 91啦中文在线观看| 欧美亚洲尤物久久| 亚洲一区二区三区四区五区黄| 久久发布国产伦子伦精品| 欧美视频在线观看一区二区| 亚洲一区二区欧美| 无码一区二区精品| 日韩免费成人网| 久久精品国产色蜜蜜麻豆| 免费看黄色av| 国产区在线观看成人精品| 国产成人h网站| 色吊一区二区三区| 亚洲一区在线视频观看| 日本一卡二卡在线| 精品国产乱码久久久久久闺蜜| 激情亚洲综合在线| 在线观看黄网址| 亚洲欧美激情插| 潘金莲一级淫片aaaaaaa| 91精品国产福利在线观看| 免费人成精品欧美精品| www成人啪啪18软件| 亚洲欧洲av另类| 特黄特色免费视频| 日韩欧美123| 国产乱码精品一区二区三区五月婷| 欧美美女性生活视频| 最新不卡av在线| 折磨小男生性器羞耻的故事| 日韩色在线观看| 国产精品99久久久久久久女警| 日韩成人黄色片| 亚州成人在线电影| 日韩av片在线| 亚洲激情在线激情| 自拍视频一区二区| 国产欧美精品区一区二区三区 | 不卡区在线中文字幕| 欧美性受xxxx| 免费在线成人网| 中文字幕电影av| 亚洲aaa精品| 美国美女黄色片| 一区二区三区不卡视频| 欧美特级黄色录像| 国产精品久久久久aaaa樱花 | 欧美性受极品xxxx喷水| 欧美a级理论片| 一级黄色录像视频| 日日摸夜夜添夜夜添亚洲女人| 欧美午夜激情影院| 亚洲午夜电影网| 人人干在线观看| 亚洲va天堂va国产va久| 91麻豆精品久久毛片一级| 亚洲一区二区三区免费视频| 亚洲高潮女人毛茸茸| 一区二区三区高清| 国产第一页精品| 亚洲成人激情综合网| 老司机深夜福利网站| 亚洲6080在线| 综合五月激情网| 美女视频黄 久久| 91激情在线视频| 国产一区二区三区四| 91精品国产入口在线| 粉嫩av一区二区三区在线播放| 在线播放/欧美激情| 成人丝袜高跟foot| 精品999久久久| 无码av免费精品一区二区三区| 久久精品夜夜夜夜久久| yy1111111| 亚洲精品一二三四区| www.黄色com| 蜜桃视频在线观看一区二区| 欧洲精品一区二区| 国产精品18久久久| 精品久久一区二区| 中文在线观看免费视频| 亚洲人成小说网站色在线 | 婷婷激情四射网| 毛片不卡一区二区| 欧美日韩国产高清一区二区 | 亚洲精品一线二线三线无人区| 国产人妖在线观看| 成人免费在线观看入口| 国产又粗又猛又爽又黄的视频四季| 无码av中文一区二区三区桃花岛| 色屁屁一区二区| 国产成人精品www牛牛影视| 精品国产91亚洲一区二区三区婷婷| 国产精品日日摸夜夜爽| 亚洲日韩欧美一区二区在线| av黄色免费在线观看| 久久超碰97中文字幕| 日韩一区二区麻豆国产| 波多野结衣办公室双飞| 一区二区三区中文字幕| 色综合久久久久综合体| 成人中文字幕合集| 国产网红主播福利一区二区| 亚洲精品乱码久久久久久久久久久久| 性做久久久久久久免费看| 欧美日韩在线亚洲一区蜜芽| 国产黄色一区二区三区| 亚洲乱码日产精品bd| 91精品国自产在线偷拍蜜桃| 成人天堂资源www在线| 国产精品久久综合| 91精品国产闺蜜国产在线闺蜜| 国产成人亚洲综合色影视| 国产丝袜美腿一区二区三区| 天天操天天干天天操天天干| 国产又黄又大久久| 久久精品一二三| 永久免费看片视频教学| 岛国一区二区在线观看| 国产精品久久久久三级| 日韩a级片在线观看 | 2023国产精品| 懂色av粉嫩av浪潮av| 国产精品白丝jk白祙喷水网站| 欧美国产1区2区| 亚洲成人生活片| a级大片免费看| 亚洲电影在线播放| 欧美一区二区三区免费在线看| 亚洲精品中文字幕在线播放| 日产国产欧美视频一区精品| 日韩欧美成人午夜| 综合 欧美 亚洲日本| 成人污污视频在线观看| 亚洲精品你懂的| 在线综合+亚洲+欧美中文字幕| aaaa黄色片| 国内国产精品久久| 国产精品每日更新在线播放网址 | 韩国v欧美v日本v亚洲v| 欧美激情一区在线| 色综合视频一区二区三区高清| 欧美性猛交乱大交| 日韩和欧美的一区| 久久精品在线免费观看| 玖玖爱这里只有精品| 国产精品99久久久精品无码| 日本成人超碰在线观看| 久久午夜羞羞影院免费观看| 老司机成人免费视频| 欧美色图校园春色| 免费日本视频一区| 中文字幕乱码一区二区免费| 日本高清不卡一区| 欧美成人三级伦在线观看| 国产一区二三区| 一区二区三区在线观看国产| 欧美一级久久久久久久大片| 国精产品久拍自产在线网站| 男生和女生一起差差差视频| 蜜桃视频免费观看一区| 国产精品乱人伦| 制服丝袜一区二区三区| а天堂中文在线资源| 香蕉视频1024| 黄页视频在线91| 亚洲黄网站在线观看| 精品久久久久久久久久久久久久久| 免费看特级毛片| 国产精品久久久久久亚洲色| 国产毛片精品视频| 亚洲一区二区视频在线| 久久精品综合网| 欧美精品粉嫩高潮一区二区| 国产传媒视频在线| 国产乱淫av麻豆国产免费| 国产精品一区二区免费不卡 | 国产调教在线观看| 性生交大片免费看l| 国产曰批免费观看久久久| 亚洲国产精品影院| 欧美高清在线精品一区| 91精品国产一区二区三区香蕉|