最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Mysql 查詢JSON結(jié)果的相關(guān)函數(shù)匯總

 更新時間:2020年11月13日 15:56:52   作者:溫欣爸比  
這篇文章主要介紹了Mysql 查詢 JSON 結(jié)果的相關(guān)函數(shù)匯總,幫助大家更好的理解和使用MySQL,感興趣的朋友可以了解下

JSON 格式字段是 Mysql 5.7 新加的屬性,不夠它本質(zhì)上以字符串性質(zhì)保存在庫中的,剛接觸時我只了解 $.xx 查詢字段的方法,因為大部分時間,有這個就夠了,其他交給程序就行了,但是最近一些操作需要更復(fù)雜的查詢操作,所以趕緊了解下更多的方法。

JSON_EXTRACT(json_doc [,path])

查詢字段

mysql> set @j = '{"name":"wxnacy"}';
mysql> select JSON_EXTRACT(@j, '$.name');
+----------------------------+
| JSON_EXTRACT(@j, '$.name') |
+----------------------------+
| "wxnacy"   |
+----------------------------+

還有一種更簡潔的方式,但是只能在查詢表時使用

mysql> select ext -> '$.name' from test;
+-----------------+
| ext -> '$.name' |
+-----------------+
| "wxnacy" |
+-----------------+

在 $. 后可以正常的使用 JSON 格式獲取數(shù)據(jù)方式,比如數(shù)組

mysql> set @j = '{"a": [1, 2]}';
mysql> select JSON_EXTRACT(@j, '$.a[0]');
+----------------------------+
| JSON_EXTRACT(@j, '$.a[0]') |
+----------------------------+
| 1    |
+----------------------------+

JSON_DEPTH(json_doc)

計算 JSON 深度,計算方式 {} [] 有一個符號即為一層,符號下有數(shù)據(jù)增加一層,復(fù)雜 JSON 算到最深的一次為止,官方文檔說 null 值深度為 0,但是實際效果并非如此,列舉幾個例子

JSON_LENGTH(json_doc [, path])

計算 JSON 最外層或者指定 path 的長度,標量的長度為1。數(shù)組的長度是數(shù)組元素的數(shù)量,對象的長度是對象成員的數(shù)量。

mysql> SELECT JSON_LENGTH('[1, 2, {"a": 3}]');
+---------------------------------+
| JSON_LENGTH('[1, 2, {"a": 3}]') |
+---------------------------------+
|    3 |
+---------------------------------+
mysql> SELECT JSON_LENGTH('{"a": 1, "b": {"c": 30}}');
+-----------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 30}}') |
+-----------------------------------------+
|     2 |
+-----------------------------------------+
mysql> SELECT JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b');
+------------------------------------------------+
| JSON_LENGTH('{"a": 1, "b": {"c": 30}}', '$.b') |
+------------------------------------------------+
|      1 |
+------------------------------------------------+

JSON_TYPE(json_doc)

返回一個utf8mb4字符串,指示JSON值的類型。 這可以是對象,數(shù)組或標量類型,如下所示:

mysql> SET @j = '{"a": [10, true]}';
mysql> SELECT JSON_TYPE(@j);
+---------------+
| JSON_TYPE(@j) |
+---------------+
| OBJECT |
+---------------+
mysql> SELECT JSON_TYPE(JSON_EXTRACT(@j, '$.a'));
+------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@j, '$.a')) |
+------------------------------------+
| ARRAY    |
+------------------------------------+
mysql> SELECT JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]'));
+---------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@j, '$.a[0]')) |
+---------------------------------------+
| INTEGER    |
+---------------------------------------+
mysql> SELECT JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]'));
+---------------------------------------+
| JSON_TYPE(JSON_EXTRACT(@j, '$.a[1]')) |
+---------------------------------------+
| BOOLEAN    |
+---------------------------------------+

可能的返回類型

純JSON類型:

  • OBJECT:JSON對象
  • ARRAY:JSON數(shù)組
  • BOOLEAN:JSON真假文字
  • NULL:JSON null文字

數(shù)字類型:

  • INTEGER:MySQL TINYINT,SMALLINT,MEDIUMINT以及INT和BIGINT標量
  • DOUBLE:MySQL DOUBLE FLOAT標量
  • DECIMAL:MySQL DECIMAL和NUMERIC標量

時間類型:

  • DATETIME:MySQL DATETIME和TIMESTAMP標量
  • 日期:MySQL DATE標量
  • TIME:MySQL TIME標量

字符串類型:

STRING:MySQL utf8字符類型標量:CHAR,VARCHAR,TEXT,ENUM和SET

二進制類型:

BLOB:MySQL二進制類型標量,包括BINARY,VARBINARY,BLOB和BIT

所有其他類型:

OPAQUE(原始位)

JSON_VALID

返回0或1以指示值是否為有效JSON。 如果參數(shù)為NULL,則返回NULL。

mysql> SELECT JSON_VALID('{"a": 1}');
+------------------------+
| JSON_VALID('{"a": 1}') |
+------------------------+
|   1 |
+------------------------+
mysql> SELECT JSON_VALID('hello'), JSON_VALID('"hello"');
+---------------------+-----------------------+
| JSON_VALID('hello') | JSON_VALID('"hello"') |
+---------------------+-----------------------+
|   0 |   1 |
+---------------------+-----------------------+

以上就是Mysql 查詢JSON結(jié)果的相關(guān)函數(shù)匯總的詳細內(nèi)容,更多關(guān)于MySQL json函數(shù)的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 解析MySQL8.0新特性——事務(wù)性數(shù)據(jù)字典與原子DDL

    解析MySQL8.0新特性——事務(wù)性數(shù)據(jù)字典與原子DDL

    這篇文章主要介紹了MySQL8.0新特性——事務(wù)性數(shù)據(jù)字典與原子DDL的相關(guān)資料,幫助大家更好的理解和學習MySQL8.0感興趣的朋友可以了解下
    2020-08-08
  • MySQL主從同步延遲原因與解決方案

    MySQL主從同步延遲原因與解決方案

    本文主要介紹了MySQL主從同步延遲原因與解決方案,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-11-11
  • 解決mysql出現(xiàn)錯誤:ERROR?1046?(3D000):No?database?selected

    解決mysql出現(xiàn)錯誤:ERROR?1046?(3D000):No?database?selected

    這篇文章主要給大家介紹了關(guān)于解決mysql出現(xiàn)錯誤:ERROR?1046?(3D000):No?database?selected的相關(guān)資料,No database selected可以理解為沒有選擇種數(shù)據(jù)庫,文中通過圖文介紹的非常詳細,需要的朋友可以參考下
    2024-01-01
  • MySQL InnoDB行記錄存儲結(jié)構(gòu)分析

    MySQL InnoDB行記錄存儲結(jié)構(gòu)分析

    工作中我們基本上都是用MySQL的InnoDB存儲引擎,但是大家有去了解過它的底層存儲結(jié)構(gòu)嗎,想必絕大部分人不知道或者說不知道怎么查相關(guān)知識,剛好來看這篇文章就對了
    2023-07-07
  • MySql?查詢符合條件的最新數(shù)據(jù)行

    MySql?查詢符合條件的最新數(shù)據(jù)行

    這篇文章主要介紹了MySql?怎么查出符合條件的最新的數(shù)據(jù)行,本文通過示例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-07-07
  • Mysql如何通過ibd文件恢復(fù)數(shù)據(jù)

    Mysql如何通過ibd文件恢復(fù)數(shù)據(jù)

    這篇文章主要介紹了Mysql如何通過ibd文件恢復(fù)數(shù)據(jù)問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 解決MYSQL連接端口被占引入文件路徑錯誤的問題

    解決MYSQL連接端口被占引入文件路徑錯誤的問題

    下面小編就為大家?guī)硪黄鉀QMYSQL連接端口被占引入文件路徑錯誤的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • 寶塔面板mysql無法啟動問題的分析和解決

    寶塔面板mysql無法啟動問題的分析和解決

    在使用寶塔linux面板一鍵安裝LNMP的是,數(shù)據(jù)庫mysql始終無法啟動,查查找找用了幾個小時,問題終于解決了,下面這篇文章主要給大家介紹了關(guān)于寶塔面板mysql無法啟動問題的分析和解決方法,需要的朋友可以參考下
    2023-04-04
  • mysql?8.0版本更換用戶密碼的方法步驟

    mysql?8.0版本更換用戶密碼的方法步驟

    這篇文章主要給大家介紹了關(guān)于mysql?8.0版本更換用戶密碼的方法步驟,MySQL用戶密碼的修改是經(jīng)常面臨的一個問題,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-11-11
  • MySQL最基本的命令使用匯總

    MySQL最基本的命令使用匯總

    這篇文章為大家分享了MySQL最基本的命令使用匯總,MySQL最基本的命令使用,包括如何正確連接MySQL(和PHP搭配之最佳組合),修改密碼與增加新用戶等相關(guān)內(nèi)容的描述,感興趣的小伙伴們可以參考一下
    2015-11-11

最新評論

宣化县| 呼和浩特市| 连江县| 北宁市| 祁阳县| 儋州市| 定边县| 车致| 五寨县| 海兴县| 鄂尔多斯市| 济南市| 灌阳县| 客服| 石河子市| 四平市| 南郑县| 大余县| 沧州市| 陆河县| 潜江市| 庄河市| 罗田县| 嘉兴市| 防城港市| 抚远县| 威海市| 射洪县| 溆浦县| 文安县| 奉化市| 石门县| 洪雅县| 田东县| 益阳市| 双牌县| 华容县| 蕲春县| 铜山县| 卓资县| 景东|