官术网_书友最值得收藏!

5.5 JSON列解析

有時候,數據庫中的數據是按照JSON格式存儲的,什么是JSON格式呢?如果讀者學過Python,應該都知道字典這種數據結構,就是最外層用花括號括起來,花括號中是key:value的形式,key可以理解成普通表中的字段名,value就是這個字段的取值,一般花括號中會包含多個key:value,也就是雖然只用了一列位置,但是存儲了多列數據,用戶可以根據需要選擇對應的key:value值。在SQL中,我們可以使用json_extract()對JSON列中的數據進行獲取。

chapter5表中的score列就是JSON格式,比如,我們要獲取每個id對應的數學成績,可以通過如下代碼實現:

select
   id
   ,json_extract(score,'$.數學') as "數學成績"
from demo.chapter5

運行上面的代碼,具體運行結果如下表所示。

json_extract()主要有兩個參數,第一個參數需要說明JSON格式的列名,此處是score列;第二個參數需要說明你要獲取JSON中具體哪個key對應的value值,注意key前面的$符號不可少。此處是要獲取“數學”這個key對應的數學成績這個value值。

json_extract()用于獲取JSON中key對應的value值,如果我們想要查看JSON中都有哪些key,則可以通過json_keys()來實現。比如,我們要查看每個id對應的score列中都有哪些key,就可以通過如下代碼實現:

select
   id
   ,json_keys(score) as "科目"
from demo.chapter5

運行上面的代碼,具體運行結果如下表所示。

主站蜘蛛池模板: 稷山县| 美姑县| 泰安市| 龙州县| 乌拉特前旗| 秀山| 上杭县| 伊宁县| 大洼县| 乐陵市| 安多县| 永登县| 灵寿县| 禹城市| 新密市| 和顺县| 平泉县| 东丽区| 松原市| 武乡县| 天柱县| 武鸣县| 崇州市| 黄冈市| 屯昌县| 高密市| 尤溪县| 桐柏县| 嘉鱼县| 玉环县| 平潭县| 都安| 雅安市| 沾化县| 天峻县| 清涧县| 通许县| 新晃| 宁德市| 阳东县| 稷山县|