在現代的 web 和應用開發中,JSON(JavaScript Object Notation)已經成為一種非常流行的數據交換格式。由於其輕量級和易於人類閱讀的特性,許多開發人員偏好在應用程序和數據庫間交換 JSON 格式的數據。MySQL 作為世界上最流行的關聯型數據庫之一,提供了對 JSON 數據類型的原生支持,允許開發人員直接存儲、查詢和操作 JSON 格式的數據。本文將介紹 MySQL 中一些實用的 JSON 函數,幫助您高效地處理 JSON 數據。

JSON 函數概覽

MySQL 提供了一系列功能強大的 JSON 函數,以下是一些最常用的函數及其應用實例:

1. 提取 JSON 數據:JSON_EXTRACT()->

  • 目的:從 JSON 文檔中提取特定的部分。
  • 例子
SELECT JSON_EXTRACT(ext, '$.name') AS name
FROM member;
-- 使用箭頭運算符
SELECT ext->'$.name' AS name
FROM member;

2. 更新 JSON 數據:JSON_SET()

  • 目的:在 JSON 文檔中添加或更新值。
  • 例子
UPDATE member
SET ext = JSON_SET(ext, '$.age', 30)
WHERE JSON_EXTRACT(ext, '$.name') = 'James';

3. 插入新的鍵值對:JSON_INSERT()

  • 目的:向 JSON 文檔中插入新的鍵值對,如果鍵已存在則不操作。
  • 例子
UPDATE member
SET ext = JSON_INSERT(ext, '$.newKey', 'newValue')
WHERE JSON_EXTRACT(ext, '$.name') = 'James';

4. 替換 JSON 數據:JSON_REPLACE()

  • 目的:替換 JSON 文檔中已存在鍵的值。
  • 例子
UPDATE member
SET ext = JSON_REPLACE(ext, '$.name', 'John')
WHERE JSON_EXTRACT(ext, '$.name') = 'James';

5. 向 JSON 數組追加元素:JSON_ARRAY_APPEND()

  • 目的:向 JSON 類型的數組末尾添加一個元素。
  • 例子
UPDATE member
SET ext = JSON_ARRAY_APPEND(ext, '$.hobbies', 'reading')
WHERE JSON_EXTRACT(ext, '$.name') = 'James';

6. 移除 JSON 中的鍵:JSON_REMOVE()

  • 目的:從 JSON 文檔中移除指定的鍵。
  • 例子
UPDATE member
SET ext = JSON_REMOVE(ext, '$.obsoleteKey')
WHERE JSON_EXTRACT(ext, '$.name') = 'James';

7. 獲取 JSON 對象的鍵:JSON_KEYS()

  • 目的:返回 JSON 對象中的所有鍵。
  • 例子
SELECT JSON_KEYS(ext)
FROM member
WHERE JSON_EXTRACT(ext, '$.name') = 'James';
最後修改日期: 2024 年 3 月 25 日

作者