目錄
- 前言
- 1. 基本知識
- 2. Demo
前言
對于基本的命令行以及優化推薦閱讀:
- 數據庫中增刪改常用語法語句(全)
- Mysql優化高級篇(全)
- 命令行登錄Mysql的詳細講解
1. 基本知識
JSON_OBJECT()
是 MySQL 中用于生成 JSON 對象的函數
從一對或多對 key-value 參數創建一個 JSON 對象,其中每個 key 必須是字符串類型,而 value 可以是任何類型,包括字符串、數值、NULL、JSON 文本
等
基本語法如下:
JSON_OBJECT(key1, value1, key2, value2, ...)
key
:必須是字符串類型value
:可以是任何類型(字符串、數值、NULL、JSON 等)
注意事項如下:
- Key 必須是字符串:key 不是字符串類型,MySQL 會返回一個錯誤
- Key 重復:如果在同一個
JSON_OBJECT()
函數中有重復的 key,后面的 key-value 對會覆蓋前面的 - NULL 處理:某個 value 是 NULL,那么生成的 JSON 對象中的對應 key 的值也是 NULL
- 嵌套 JSON:可以嵌套使用,從而生成復雜的 JSON 結構
- MySQL 版本:在 MySQL 5.7.8 及以上版本中引入的,因此需要確保 MySQL 版本支持此函數
2. Demo
基本的語句如下:SELECT JSON_OBJECT('id', 1, 'name', 'Alice', 'age', 30);
同樣可處理Null值:SELECT JSON_OBJECT('id', 2, 'name', 'Bob', 'age', NULL);
嵌套JSON對象
SELECT JSON_OBJECT('id', 3,'name', 'Carol','address', JSON_OBJECT('city', 'New York', 'zip', '10001')
);
截圖如下:
數組與 JSON_ARRAY() 的結合
SELECT JSON_OBJECT('id', 4,'name', 'David','scores', JSON_ARRAY(85, 90, 78)
);
截圖如下:
當遇到多個key值一樣,只會使用后面的key:SELECT JSON_OBJECT('id', 5, 'name', 'Eve', 'name', 'Eva');