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

MySQL中JSON_CONTAINS函數(shù)詳細(xì)用法示例?及場景

 更新時(shí)間:2025年06月19日 10:39:31   作者:悟能不能悟  
這篇文章主要介紹了MySQL中JSON_CONTAINS函數(shù)詳細(xì)用法示例?及場景的相關(guān)資料,MySQL JSON_CONTAINS檢查目標(biāo)JSON是否包含搜索值,文中將用法介紹的非常詳細(xì),需要的朋友可以參考下

前言

MySQL中的JSON_CONTAINS函數(shù)用于檢查一個(gè)JSON文檔(目標(biāo))是否包含另一個(gè)JSON文檔(搜索值)。以下是其詳細(xì)用法:

函數(shù)語法?

JSON_CONTAINS(target_json, search_json [, path])
  • ?target_json?:要檢查的目標(biāo)JSON文檔。
  • ?search_json?:要搜索的JSON值或結(jié)構(gòu)。
  • ?path?(可選):指定在目標(biāo)JSON中的具體路徑。若未指定,默認(rèn)檢查整個(gè)文檔。

?返回值?:

  • 1:目標(biāo)包含搜索值。
  • 0:目標(biāo)不包含搜索值。
  • NULL:參數(shù)為NULL或路徑不存在。

?使用場景和示例?

?1. 檢查數(shù)組是否包含元素?

  • ?示例表?:

    CREATE TABLE users (
        id INT PRIMARY KEY,
        tags JSON
    );
    INSERT INTO users VALUES
    (1, '["mysql", "database", "developer"]'),
    (2, '["python", "web", "tester"]'),
    (3, '["java", "backend", "developer"]');
  • ?查詢包含"developer"標(biāo)簽的用戶?:

    SELECT * FROM users 
    WHERE JSON_CONTAINS(tags, '"developer"', '$');

    或簡寫:

    SELECT * FROM users 
    WHERE JSON_CONTAINS(tags, '"developer"');

    ?注意?:字符串需用雙引號(hào)包裹,外層用單引號(hào)。

?2. 檢查對象是否包含鍵值對?

  • ?示例數(shù)據(jù)?:

    {"name": "Alice", "age": 30, "skills": ["SQL", "Java"]}
  • ?查詢包含"name": "Alice"的對象?:

    SELECT * FROM profiles 
    WHERE JSON_CONTAINS(data, '{"name": "Alice"}');

?3. 嵌套結(jié)構(gòu)和路徑參數(shù)?

  • ?示例數(shù)據(jù)?:

    {"department": {"team": ["Alice", "Bob"], "id": 101}}
  • ?**檢查team數(shù)組是否包含"Bob"**?:

    SELECT JSON_CONTAINS(
      '{"department": {"team": ["Alice", "Bob"], "id": 101}}',
      '"Bob"',
      '$.department.team'
    ); -- 返回1

?4. 數(shù)據(jù)類型嚴(yán)格匹配?

JSON區(qū)分?jǐn)?shù)據(jù)類型,如數(shù)字3和字符串"3"不匹配:

SELECT JSON_CONTAINS('[1, 2, 3]', '3');      -- 返回1(數(shù)值3)
SELECT JSON_CONTAINS('[1, 2, "3"]', '"3"');  -- 返回1(字符串"3")
SELECT JSON_CONTAINS('[1, 2, 3]', '"3"');   -- 返回0(類型不匹配)

?5. 通配符路徑?

  • ?示例數(shù)據(jù)?:

    {"employees": [{"name": "Alice"}, {"name": "Bob"}]}
  • ?**檢查任意name是否為"Bob"**?:

    SELECT JSON_CONTAINS(
      '{"employees": [{"name": "Alice"}, {"name": "Bob"}]}',
      '"Bob"',
      '$.employees[*].name'
    ); -- 返回1

?注意事項(xiàng)?

  • ?路徑存在性?:若路徑不存在,返回NULL。

    SELECT JSON_CONTAINS('{"a": 1}', '1', '$.b'); -- 返回NULL
  • ?對象匹配?:搜索對象時(shí),必須完全包含所有鍵值對。

    SELECT JSON_CONTAINS('{"a":1, "b":2}', '{"a":1}'); -- 返回1
    SELECT JSON_CONTAINS('{"a":1}', '{"a":1, "b":2}'); -- 返回0
  • ?數(shù)組子集?:搜索數(shù)組時(shí),目標(biāo)數(shù)組需包含搜索數(shù)組所有元素(順序無關(guān))。

    SELECT JSON_CONTAINS('[1,2,3]', '[3,1]'); -- 返回1
    SELECT JSON_CONTAINS('[1,2,3]', '[1,4]'); -- 返回0

?總結(jié)?

JSON_CONTAINS適用于驗(yàn)證JSON結(jié)構(gòu)中的存在性,需注意:

  • 正確使用路徑和數(shù)據(jù)類型。
  • 對象需完全匹配鍵值對,數(shù)組需包含所有元素。
  • 結(jié)合路徑通配符(*)可靈活處理嵌套數(shù)據(jù)。

到此這篇關(guān)于MySQL中JSON_CONTAINS函數(shù)詳細(xì)用法示例?及場景的文章就介紹到這了,更多相關(guān)MySQL JSON_CONTAINS函數(shù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Mysql中深分頁的五種常用方法整理

    Mysql中深分頁的五種常用方法整理

    在數(shù)據(jù)量非常大的情況下,深分頁查詢則變得很常見,這篇文章為大家整理了5個(gè)常用的方法,文中的示例代碼講解詳細(xì),大家可以根據(jù)自己的需求進(jìn)行選擇
    2025-03-03
  • MySQL校對規(guī)則(COLLATION)的具體使用

    MySQL校對規(guī)則(COLLATION)的具體使用

    本文主要介紹了MySQL校對規(guī)則(COLLATION)的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • mysql啟動(dòng)時(shí)出現(xiàn)ERROR 2003 (HY000)問題的解決方法

    mysql啟動(dòng)時(shí)出現(xiàn)ERROR 2003 (HY000)問題的解決方法

    這篇文章主要為大家詳細(xì)介紹了mysql啟動(dòng)時(shí)出現(xiàn)ERROR 2003 (HY000問題的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-03-03
  • 由不同的索引更新解決MySQL死鎖套路

    由不同的索引更新解決MySQL死鎖套路

    前幾篇文章介紹了用源碼的方式來調(diào)試鎖相關(guān)的信息,這里同樣用這個(gè)工具來解決一個(gè)線上實(shí)際的死鎖案例,下面小編來簡單介紹下
    2019-05-05
  • SQL調(diào)優(yōu)核心戰(zhàn)法之索引失效場景與Explain深度解析

    SQL調(diào)優(yōu)核心戰(zhàn)法之索引失效場景與Explain深度解析

    在數(shù)據(jù)庫性能治理中,SQL調(diào)優(yōu)是提升系統(tǒng)吞吐量的核心抓手,本文通過六大典型索引失效場景剖析、Explain執(zhí)行計(jì)劃深度解讀及權(quán)威優(yōu)化策略,感興趣的小伙伴可以了解下
    2025-12-12
  • 大幅提升MySQL中InnoDB的全表掃描速度的方法

    大幅提升MySQL中InnoDB的全表掃描速度的方法

    這篇文章主要介紹了大幅提升MySQL中InnoDB的全表掃描速度的方法,作者談到了預(yù)讀取和多次async I/O請求等方法,減小InnoDB對MySQL速度的影響,需要的朋友可以參考下
    2015-06-06
  • 2022最新版MySQL 8.0.30 安裝及配置教程(小白入門)

    2022最新版MySQL 8.0.30 安裝及配置教程(小白入門)

    這篇文章主要介紹了2022最新版MySQL 8.0.30 安裝及配置教程,安裝過程算是比較簡單的,今天給大家分享的此文比較適合mysql數(shù)據(jù)庫的小白,需要的朋友可以參考下
    2022-09-09
  • MySQL中IO問題的深入分析與優(yōu)化

    MySQL中IO問題的深入分析與優(yōu)化

    據(jù)庫作為存儲(chǔ)系統(tǒng),所有業(yè)務(wù)訪問數(shù)據(jù)的操作都會(huì)轉(zhuǎn)化為底層數(shù)據(jù)庫系統(tǒng)的IO行為,下面這篇文章主要給大家介紹了關(guān)于MySQL中IO問題的深入分析與優(yōu)化的相關(guān)資料,需要的朋友可以參考下
    2022-04-04
  • Mysql5.6啟動(dòng)內(nèi)存占用過高解決方案

    Mysql5.6啟動(dòng)內(nèi)存占用過高解決方案

    vps的內(nèi)存為512M,安裝好nginx,php等啟動(dòng)起來,mysql死活啟動(dòng)不起來看了日志只看到對應(yīng)pid被結(jié)束了,后跟蹤看發(fā)現(xiàn)是內(nèi)存不足被killed;mysql5.6啟動(dòng)內(nèi)存占用過高怎么辦呢,下面小編給大家解答下
    2016-09-09
  • SQL中Lag()和LEAD()的用法示例詳解

    SQL中Lag()和LEAD()的用法示例詳解

    LAG和LEAD函數(shù)為SQL開發(fā)者提供了強(qiáng)大的數(shù)據(jù)洞察力,尤其是在處理時(shí)間序列和趨勢分析問題時(shí),下面這篇文章主要介紹了SQL中Lag()和LEAD()用法的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2025-10-10

最新評論

江陵县| 清流县| 双江| 竹溪县| 镇远县| 营口市| 如东县| 长乐市| 新民市| 柏乡县| 涿鹿县| 伊通| 集贤县| 茌平县| 徐州市| 柏乡县| 防城港市| 禹城市| 东宁县| 永仁县| 焉耆| 于都县| 依兰县| 疏附县| 磴口县| 缙云县| 托克逊县| 江安县| 深州市| 永福县| 浮山县| 安徽省| 土默特右旗| 班戈县| 睢宁县| 乌拉特后旗| 措勤县| 三明市| 柘城县| 甘洛县| 凤城市|