日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

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

MySQL中json字段的操作方法

瀏覽:36日期: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 數據庫
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
蜜臀av国产精品久久久久| 国产调教一区二区三区| 日韩大片在线播放| 婷婷五月色综合香五月| 日本在线一区二区三区| 日韩av一区二区三区| 欧美三区不卡| 国产黄色精品| 高清日韩欧美| 久久精品国产www456c0m| 亚洲午夜精品久久久久久app| 不卡av一区二区| 国产亚洲亚洲| 亚洲精品麻豆| 美女尤物国产一区| 91欧美国产| 亚洲五月婷婷| 亚洲视频电影在线| 国产探花一区二区| 精品国产亚洲日本| 亚洲午夜av| 中文字幕乱码亚洲无线精品一区| 国产日产一区| 捆绑调教日本一区二区三区| 一区在线免费| 欧美日韩伊人| 一区二区精品伦理...| 国产精品7m凸凹视频分类| 亚洲欧美日韩国产一区二区| 久久国产日韩欧美精品| 欧美激情另类| 国产亚洲精品v| 国产亚洲精aa在线看| www.九色在线| 香蕉久久夜色精品国产| 欧美亚洲网站| 国产精品不卡| 中文精品视频| 欧美国产中文高清| 91九色精品| 国产精品久久久久久久久免费高清 | 欧美日韩精品一本二本三本| 亚洲涩涩av| 欧美黄色一区| 亚洲一区二区成人| 老司机免费视频一区二区三区| 久久免费高清| 日韩精品乱码av一区二区| sm久久捆绑调教精品一区| 99视频在线精品国自产拍免费观看| 7777精品| 欧美色图一区| 国产精品入口久久| 不卡一区2区| 久久黄色影视| 在线亚洲激情| 97欧美在线视频| 日韩极品在线观看| 亚洲不卡av不卡一区二区| 日韩在线电影| 欧美不卡高清一区二区三区| 日本91福利区| 亚洲欧美伊人| 国产精品久久久久久久久久妞妞| 亚洲国产一区二区在线观看| 美女精品一区二区| 综合激情婷婷| 少妇精品导航| 久久精品系列| 亚洲制服一区| 亚洲国内欧美| 给我免费播放日韩视频| 亚洲ab电影| 伊人久久成人| 成人久久一区| 精品国产亚洲一区二区三区大结局 | 捆绑调教日本一区二区三区| 日韩美女国产精品| 久久网站免费观看| 欧美国产极品| 亚洲精品在线国产| 亚洲先锋成人| 色黄视频在线观看| 国产极品久久久久久久久波多结野| 欧美一区=区| 亚洲福利国产| 欧美日韩视频免费观看| 精品亚洲精品| 欧美国产三级| 日韩成人精品一区二区三区| 久久亚洲风情| 亚洲激情不卡| 国产一区日韩欧美| 日韩在线短视频| 国产一区日韩| 久久精品xxxxx| 婷婷亚洲成人| 亚洲一级淫片| 久久夜色精品| 亚洲综合国产| 中文精品视频| 最新国产拍偷乱拍精品| 99久久久久| 欧美三级精品| 青青久久av| 欧美日韩精品免费观看视欧美高清免费大片 | 啪啪亚洲精品| 在线看片一区| 亚洲综合五月| 免费的成人av| 亚洲欧美专区| 日本在线成人| 欧美日韩精品一区二区三区视频| 午夜亚洲福利| 奇米狠狠一区二区三区| 日韩 欧美一区二区三区| 亚洲精品日本| 日韩av一区二区三区四区| 日韩激情综合| 久久精品99国产国产精| 国产亚洲精aa在线看 | 色综合视频一区二区三区日韩 | 国产色99精品9i| 久久国产欧美日韩精品| 国产伦精品一区二区三区视频| 久久国产人妖系列| 国产精品美女午夜爽爽| 久久精品国产网站| 国产欧美一区二区三区精品酒店| 日韩免费高清| 亚洲午夜视频| 亚洲欧美成人综合| 视频一区中文字幕精品| 日韩高清电影免费| 欧美日韩xxxx| 国产精品99久久免费| 麻豆精品99| 色老板在线视频一区二区| 欧美日韩在线网站| 日韩中文字幕一区二区三区| 日本精品久久| 欧美激情网址| 香蕉成人av| 夜夜嗨一区二区| 日韩欧美中文在线观看| 免费看久久久| 亚洲精品一级二级| 午夜在线一区二区| 奇米777国产一区国产二区| 免费观看亚洲天堂| 在线一区视频观看| 水蜜桃久久夜色精品一区的特点 | 日本vs亚洲vs韩国一区三区二区| 久久黄色影视| 日韩成人综合| 天堂成人国产精品一区| 国产欧美在线| 亚洲va中文在线播放免费| 国产一区导航| 国产日韩欧美中文在线| 日韩久久精品网| 中文字幕日韩高清在线 | 超碰在线99| 久久精品国产99久久| 一二三区精品| 国产成人精选| 国产精品普通话对白| 日韩av一区二区三区四区| 中文一区一区三区高中清不卡免费| 亚洲精品午夜av福利久久蜜桃| 7777精品| 久久国产亚洲| 欧美一区在线观看视频| 久久久久国产精品一区二区| 亚洲狼人精品一区二区三区| 久久97久久97精品免视看秋霞| 婷婷久久一区| 欧美a在线观看| 欧美日韩第一| 国产黄色精品| 久久国产99| 免费一区二区三区在线视频| 激情欧美丁香| 国产精品66| 亚洲激情婷婷| 久久久久亚洲精品中文字幕| 欧美日韩四区| 精品国产一区二区三区噜噜噜| 性欧美长视频| 日韩欧美二区| 911亚洲精品| 黄色欧美日韩| 四季av一区二区凹凸精品| 亚洲在线一区| 亚洲综合电影| 国产欧美一区二区三区国产幕精品| 精品日韩毛片| 国产精品伦理久久久久久| 亚洲啊v在线免费视频| 久久要要av|