MySQL 8.4 版本注意事項
本節列出的函數會從元件元素組成 JSON 值。
評估 (可能為空的) 值列表,並傳回包含這些值的 JSON 陣列。
mysql> SELECT JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()); +---------------------------------------------+ | JSON_ARRAY(1, "abc", NULL, TRUE, CURTIME()) | +---------------------------------------------+ | [1, "abc", null, true, "11:30:24.000000"] | +---------------------------------------------+
JSON_OBJECT([
key
,val
[,key
,val
] ...])評估 (可能為空的) 鍵值對列表,並傳回包含這些鍵值對的 JSON 物件。如果任何鍵名稱為
NULL
或引數數量為奇數,則會發生錯誤。mysql> SELECT JSON_OBJECT('id', 87, 'name', 'carrot'); +-----------------------------------------+ | JSON_OBJECT('id', 87, 'name', 'carrot') | +-----------------------------------------+ | {"id": 87, "name": "carrot"} | +-----------------------------------------+
將字串加上雙引號並逸出內部引號和其他字元,以將字串引述為 JSON 值,然後將結果傳回為
utf8mb4
字串。如果引數為NULL
,則傳回NULL
。此函數通常用於產生有效的 JSON 字串常值,以包含在 JSON 文件中。
某些特殊字元會根據表格 14.23,「JSON_UNQUOTE() 特殊字元逸出序列」中顯示的逸出序列使用反斜線逸出。
mysql> SELECT JSON_QUOTE('null'), JSON_QUOTE('"null"'); +--------------------+----------------------+ | JSON_QUOTE('null') | JSON_QUOTE('"null"') | +--------------------+----------------------+ | "null" | "\"null\"" | +--------------------+----------------------+ mysql> SELECT JSON_QUOTE('[1, 2, 3]'); +-------------------------+ | JSON_QUOTE('[1, 2, 3]') | +-------------------------+ | "[1, 2, 3]" | +-------------------------+
您也可以使用CAST(
將其他類型的值轉換為 value
AS JSON)JSON
類型來取得 JSON 值;如需更多資訊,請參閱在 JSON 和非 JSON 值之間轉換。
有兩個產生 JSON 值的聚合函數可用。JSON_ARRAYAGG()
會將結果集傳回為單一 JSON 陣列,而JSON_OBJECTAGG()
會將結果集傳回為單一 JSON 物件。如需更多資訊,請參閱第 14.19 節,「聚合函數」。