成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

MySQL中json字段的操作方法

瀏覽:2日期:2023-10-09 17:47:03

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: 0mysql> 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的意思是只要包含一個成員,就返回1mysql> select json_contains_path(@j,’one’,’$.a’,’$.e’);+------------------------------------------+| json_contains_path(@j,’one’,’$.a’,’$.e’) |+------------------------------------------+| 1 |+------------------------------------------+1 row in set (0.00 sec)#all的意思是所有的成員都包含,才返回1mysql> 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組合起來的類型,可以看到是arraymysql> 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 數據庫
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
91麻豆高清视频| 欧美日韩在线观看一区二区| 91国内精品野花午夜精品| 亚洲男女毛片无遮挡| 欧美永久精品| 精品久久久久久久久久久久包黑料 | 先锋亚洲精品| 日韩毛片视频在线看| 狠狠干综合网| 成人欧美一区二区三区在线播放| 欧美日韩亚洲一区| 亚洲国产高清不卡| 欧美精品一区二区三区久久久竹菊| 精品国产1区2区3区| 丁香六月综合激情| 日韩久久久久久| 国产盗摄女厕一区二区三区| 538prom精品视频线放| 国产美女视频一区| 欧美一区二区三区喷汁尤物| 精品一区精品二区高清| 欧美日精品一区视频| 麻豆精品在线视频| 欧美无人高清视频在线观看| 韩国成人精品a∨在线观看| 6080日韩午夜伦伦午夜伦| 国产成人亚洲综合色影视| 日韩一区二区三区在线| 成人一区在线观看| 久久婷婷色综合| 午夜精品av| 亚洲欧洲国产日韩| 国产精品久久久对白| 午夜电影网亚洲视频| 在线观看区一区二| 韩国一区二区在线观看| 在线成人小视频| 风间由美一区二区av101| 欧美xxxxx牲另类人与| 色综合天天综合网国产成人综合天| 美女www一区二区| 欧美日韩一区二区在线观看视频| 国产一区二区三区黄视频| 欧美一区二区三区四区久久| 成人三级伦理片| 久久精品视频一区二区三区| 国产精品对白刺激久久久| 亚洲情趣在线观看| 91久久国产自产拍夜夜嗨| 亚洲综合精品自拍| 色婷婷国产精品综合在线观看| 久久精品久久精品| 日韩一区二区三| 欧美日韩国产精品一卡| 一区二区成人在线| 欧美伊人久久大香线蕉综合69| 国产精品资源站在线| 久久久久久免费| 亚洲黄页一区| 麻豆免费精品视频| www精品美女久久久tv| 亚洲国产1区| 美女高潮久久久| 久久久久久久久久久久久久久99| 黄色精品网站| 天堂在线一区二区| 日韩欧美专区在线| 在线日韩欧美| 久久av中文字幕片| 国产免费成人在线视频| 久久国产99| 高清国产一区二区| 又紧又大又爽精品一区二区| 欧美在线一区二区| 91农村精品一区二区在线| 亚洲三级小视频| 在线视频你懂得一区二区三区| 成人免费看的视频| 亚洲男人天堂一区| 欧美一区二区三区在线观看| 欧美二区不卡| 免费三级欧美电影| 欧美激情中文不卡| 在线亚洲免费视频| 欧美日韩三区四区| 久久精品二区亚洲w码| 国产日韩欧美一区二区三区综合| 国产三区精品| 国产成人精品午夜视频免费| 亚洲欧美电影一区二区| 欧美日产在线观看| 亚洲动漫精品| 国产精品一区二区在线观看不卡| 国产精品久久久久久亚洲毛片| 久久亚洲高清| 99精品欧美一区二区三区综合在线| 亚洲一区在线视频观看| 欧美大片在线观看| 亚洲欧美精品在线观看| 波多野结衣中文字幕一区二区三区| 一级特黄大欧美久久久| 精品国产凹凸成av人网站| 六月婷婷一区| 欧美精品二区| 久久超碰97人人做人人爱| 日韩一区欧美一区| 欧美一区二区视频在线观看2020| 一区二区av| a级高清视频欧美日韩| 日韩不卡一二三区| 亚洲国产精品成人综合色在线婷婷| 在线免费观看一区| 激情久久中文字幕| 国产a视频精品免费观看| 亚洲电影一区二区三区| 国产亚洲综合av| 欧美日韩精品一区二区三区蜜桃 | 欧美丝袜自拍制服另类| 在线欧美福利| a级精品国产片在线观看| 蜜桃av一区二区三区| 亚洲久本草在线中文字幕| 久久综合精品国产一区二区三区 | 中文字幕日韩精品一区| 欧美色手机在线观看| 亚洲另类黄色| av高清不卡在线| 青青草原综合久久大伊人精品| 国产精品成人一区二区三区夜夜夜| 欧美日韩国产一级二级| 国产午夜久久| 欧美日韩高清在线一区| 国产伦精品一区二区三区视频青涩| 亚洲激情欧美激情| 精品久久久久香蕉网| 欧美性大战久久久| 国产亚洲精品v| 欧美精品三级| av午夜精品一区二区三区| 精品一区二区三区在线视频| 亚洲精品成a人| 欧美激情一区二区三区在线| 欧美一区二区三区电影| 在线观看三级视频欧美| 在线亚洲一区| 91麻豆免费在线观看| 国产成人精品免费视频网站| 性做久久久久久免费观看| 亚洲欧美一区二区不卡| 日本一区二区成人在线| 91麻豆精品91久久久久久清纯| 国产精品夜夜夜一区二区三区尤| 国产自产在线视频一区| 激情文学综合插| 亚洲1区2区3区视频| 国产精品美女视频| 久久久久久黄色| 欧美日韩国产美| 免费视频一区| 韩国在线一区| 成人激情免费网站| 韩国v欧美v亚洲v日本v| 老汉av免费一区二区三区| 一区二区三区四区国产精品| 国产欧美视频一区二区三区| 日韩一卡二卡三卡| 久久婷婷丁香| 国产日韩欧美一区二区三区在线观看| 国内一区二区三区在线视频| 成人在线综合网站| 国内欧美视频一区二区| 日韩精品福利网| 亚洲午夜av在线| 亚洲欧美电影一区二区| 亚洲激情自拍偷拍| 国产精品久久久久久久久图文区 | 亚洲狠狠婷婷| 欧美午夜视频在线| 成人精品视频一区二区三区尤物| 精品在线观看免费| 看片网站欧美日韩| 免费观看在线综合色| 亚洲一区二区三区四区的| 亚洲青青青在线视频| 国产精品欧美综合在线| 久久免费午夜影院| 精品久久99ma| 久久久久国产精品厨房| 欧美电影精品一区二区| 91精品国产综合久久久久久久 | 综合中文字幕亚洲| 中文字幕av一区二区三区免费看| 欧美国产综合一区二区| 久久精品日产第一区二区三区高清版 | 制服丝袜激情欧洲亚洲| 欧美日韩国产综合视频在线观看| 欧洲色大大久久| 精品视频在线看| 日韩一区二区视频| 日韩欧美在线综合网|