亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

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

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

JSON 對(duì)象查詢

1. JSON_CONTAINS

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

  • 語(yǔ)法JSON_CONTAINS(json_doc, val[, path])
  • 示例: 假設(shè)有一個(gè)表 person,其中有一個(gè) JSON 列 info,存儲(chǔ)了個(gè)人信息。
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": "張三"},則返回對(duì)應(yīng)的行。

2. JSON_EXTRACT

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

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

通過(guò)提取 age 的值并進(jìn)行比較,篩選出符合條件的記錄。

3. JSON_TABLE

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

語(yǔ)法

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)換為表格格式,然后通過(guò) WHERE 條件篩選出 age 大于 25 的記錄。

JSON 數(shù)組查詢

1. JSON_CONTAINS

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

  • 語(yǔ)法JSON_CONTAINS(json_array, val[, path])
  • 示例: 假設(shè)有一個(gè)表 fruits,其中有一個(gè) JSON 列 fruits_array,存儲(chǔ)了水果數(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",則返回對(duì)應(yīng)的行。

2. JSON_EXTRACT

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

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

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

3. JSON_TABLE

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

語(yǔ)法

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)換為表格格式,然后通過(guò) WHERE 條件篩選出包含 "banana" 的記錄。

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

相關(guān)文章

  • mysql插入帶emoji表情的數(shù)據(jù)報(bào)錯(cuò)問(wèn)題

    mysql插入帶emoji表情的數(shù)據(jù)報(bào)錯(cuò)問(wèn)題

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

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

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

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

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

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

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

    MySQL 5.5主從同步設(shè)置筆記分享

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

    一文深入探究MySQL自增鎖

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

    innodb存儲(chǔ)引擎修改表共享空間為獨(dú)立空間

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

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

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

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

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

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

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

最新評(píng)論