欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

MySQL JSON 查詢中的對象與數(shù)組技巧及查詢示例

 更新時間:2025年06月11日 11:11:49   作者:愿你天黑有燈下雨有傘  
MySQL中JSON對象和JSON 數(shù)組查詢的詳細介紹及帶有WHERE條件的查詢示例,本文給大家介紹的非常詳細,mysql json查詢示例相關(guān)知識感興趣的朋友一起看看吧

MySQL 中 JSON 對象和 JSON 數(shù)組查詢的詳細介紹及帶有 WHERE 條件的查詢示例:

JSON 對象查詢

1. JSON_CONTAINS

用于檢查 JSON 對象是否包含指定的值或 JSON 對象。

  • 語法JSON_CONTAINS(json_doc, val[, path])
  • 示例: 假設有一個表 person,其中有一個 JSON 列 info,存儲了個人信息。
CREATE TABLE person (
    id INT PRIMARY KEY,
    info JSON
);
INSERT INTO person (id, info) VALUES (1, '{"name": "張三", "age": 30}');

查詢 info 列中 name"張三" 的記錄:

SELECT * FROM person WHERE JSON_CONTAINS(info, '"張三"', '$.name');

如果 info 列中包含 {"name": "張三"},則返回對應的行。

2. JSON_EXTRACT

用于從 JSON 對象中提取指定路徑的值。

  • 語法JSON_EXTRACT(json_doc, path)
  • 示例: 查詢 info 列中 age 大于 25 的記錄
SELECT * FROM person WHERE JSON_EXTRACT(info, '$.age') > 25;

通過提取 age 的值并進行比較,篩選出符合條件的記錄。

3. JSON_TABLE

將 JSON 對象轉(zhuǎn)換為關(guān)系型表格,便于查詢。

語法

JSON_TABLE(
    json_doc,
    path_expression
    COLUMNS(
        column_name column_type PATH json_path [on_empty] [on_error],
        ...
    )
) [AS] alias

示例

SELECT *
FROM person,
JSON_TABLE(
    info,
    '$' COLUMNS(
        name VARCHAR(50) PATH '$.name',
        age INT PATH '$.age'
    )
) AS jt
WHERE jt.age > 25;

info 列中的 JSON 數(shù)據(jù)轉(zhuǎn)換為表格格式,然后通過 WHERE 條件篩選出 age 大于 25 的記錄。

JSON 數(shù)組查詢

1. JSON_CONTAINS

同樣適用于 JSON 數(shù)組,檢查數(shù)組是否包含指定的值。

  • 語法JSON_CONTAINS(json_array, val[, path])
  • 示例: 假設有一個表 fruits,其中有一個 JSON 列 fruits_array,存儲了水果數(shù)組
CREATE TABLE fruits (
    id INT PRIMARY KEY,
    fruits_array JSON
);
INSERT INTO fruits (id, fruits_array) VALUES (1, '["apple", "banana", "orange"]');

查詢 fruits_array 列中包含 "banana" 的記錄

SELECT * FROM fruits WHERE JSON_CONTAINS(fruits_array, '"banana"');

如果 fruits_array 中包含 "banana",則返回對應的行。

2. JSON_EXTRACT

從 JSON 數(shù)組中提取指定索引的值。

  • 語法JSON_EXTRACT(json_array, path)
  • 示例: 查詢 fruits_array 列中第二個水果為 "banana" 的記錄
SELECT * FROM fruits WHERE JSON_EXTRACT(fruits_array, '$[1]') = '"banana"';

通過提取數(shù)組中索引為 1 的值并進行比較,篩選出符合條件的記錄。

3. JSON_TABLE

將 JSON 數(shù)組轉(zhuǎn)換為關(guān)系型表格。

語法

JSON_TABLE(
    json_doc,
    path_expression
    COLUMNS(
        column_name column_type PATH json_path [on_empty] [on_error],
        ...
    )
) [AS] alias

示例

SELECT *
FROM fruits,
JSON_TABLE(
    fruits_array,
    '$[*]' COLUMNS(
        fruit VARCHAR(50) PATH '$'
    )
) AS jt
WHERE jt.fruit = 'banana';

fruits_array 列中的 JSON 數(shù)組轉(zhuǎn)換為表格格式,然后通過 WHERE 條件篩選出包含 "banana" 的記錄。

到此這篇關(guān)于MySQL JSON 查詢中的對象與數(shù)組技巧的文章就介紹到這了,更多相關(guān)mysql json查詢內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • mysql插入帶emoji表情的數(shù)據(jù)報錯問題

    mysql插入帶emoji表情的數(shù)據(jù)報錯問題

    在處理MySQL數(shù)據(jù)庫插入表情時出現(xiàn)錯誤,主要可能是由三個因素引起的:1、數(shù)據(jù)庫版本號是否大于5.5.3;2、數(shù)據(jù)庫表及字段的字符集是否為utf8mb4;3、項目中MySQL驅(qū)動的版本是否大于5.1.13,本文詳細講解了如何針對這三個關(guān)鍵點進行排查和解決
    2024-11-11
  • mysql 遞歸查找菜單節(jié)點的所有子節(jié)點的方法

    mysql 遞歸查找菜單節(jié)點的所有子節(jié)點的方法

    這篇文章主要介紹了mysql 遞歸查找菜單節(jié)點的所有子節(jié)點,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-11-11
  • Mysql日志文件和日志類型介紹

    Mysql日志文件和日志類型介紹

    這篇文章主要介紹了Mysql日志文件和日志類型介紹,本文講解了日志文件類型、錯誤日志、通用查詢?nèi)罩尽⒙俨樵內(nèi)罩?、二進制日志等內(nèi)容,需要的朋友可以參考下
    2014-12-12
  • MySQL中Set與Enum的區(qū)別和使用詳解

    MySQL中Set與Enum的區(qū)別和使用詳解

    這篇文章主要介紹了MySQL中Set與Enum的區(qū)別和使用詳解,數(shù)據(jù)庫中的 set 是一種集合數(shù)據(jù)類型,用于存儲不同的元素,每個元素只能出現(xiàn)一次,Set 的主要作用是方便進行集合運算,如并集、交集等操作,需要的朋友可以參考下
    2024-01-01
  • MySQL 5.5主從同步設置筆記分享

    MySQL 5.5主從同步設置筆記分享

    這篇文章主要介紹了MySQL 5.5主從同步設置筆記分享,需要的朋友可以參考下
    2014-05-05
  • 一文深入探究MySQL自增鎖

    一文深入探究MySQL自增鎖

    MySQL的自增鎖是指在使用自增主鍵(Auto?Increment)時,為了保證唯一性和正確性,系統(tǒng)會對自增字段進行加鎖,這樣可以確保同時插入多條記錄時,每條記錄都能夠獲得唯一的自增值,本將和大家一起深入探究MySQL自增鎖,需要的朋友可以參考下
    2023-08-08
  • innodb存儲引擎修改表共享空間為獨立空間

    innodb存儲引擎修改表共享空間為獨立空間

    最近在優(yōu)化mysql innodb存儲引擎,把共享表空間轉(zhuǎn)換成獨立表空間,下面是詳細步驟
    2014-01-01
  • MySQL如何比較兩個表數(shù)據(jù)的差異

    MySQL如何比較兩個表數(shù)據(jù)的差異

    這篇文章主要介紹了MySQL比較兩個表數(shù)據(jù)的差異,這些方式可以根據(jù)具體需求和數(shù)據(jù)結(jié)構(gòu)選擇合適的方法來比較兩個表的數(shù)據(jù)差異,本文給大家介紹的非常詳細,需要的朋友可以參考下
    2023-10-10
  • mysql Innodb表空間卸載、遷移、裝載的使用方法

    mysql Innodb表空間卸載、遷移、裝載的使用方法

    從MySQL的Innodb特性中我們知道,Inndob的表空間有共享和獨享的特點,如果是共享的。則默認會把表空間存放在一個文件中(ibdata1),當開啟獨享表空間參數(shù)Innodb_file_per_table時,會為每個Innodb表創(chuàng)建一個.ibd的文件。文章討論在獨享表空間卸載、裝載、遷移Innodb表的情況
    2013-11-11
  • mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效)

    mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效)

    這篇文章主要介紹了mysql 8.0.22壓縮包完整安裝與配置教程圖解(親測安裝有效),本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12

最新評論