MySQL支持多種JSON相關(guān)的函數(shù),這些函數(shù)使得在MySQL數(shù)據(jù)庫中處理JSON數(shù)據(jù)變得更加容易。以下是一些常用的JSON函數(shù):
- JSON_EXTRACT(json_doc, path) 或 -> (json_doc, path):從JSON文檔中提取值。
json_doc
是要處理的JSON數(shù)據(jù),path
是JSON數(shù)據(jù)的路徑表達式。這個函數(shù)返回指定路徑上的JSON值。
- JSON_SET(json_doc, path, val) 或 ->> (json_doc, path) = val:設(shè)置JSON文檔中指定路徑的值。如果該路徑不存在,則創(chuàng)建一個新的鍵值對。
json_doc
是要修改的JSON數(shù)據(jù),path
是指定路徑,val
是要設(shè)置的值。
- JSON_INSERT(json_doc, path, val) 或 ->> (json_doc, path) = val:在JSON文檔的指定路徑插入一個鍵值對。如果該路徑已經(jīng)存在,則該函數(shù)不會修改已有的值。
json_doc
是要修改的JSON數(shù)據(jù),path
是指定路徑,val
是要插入的值。
- JSON_REPLACE(json_doc, path, val) 或 ->> (json_doc, path) = val:替換JSON文檔中指定路徑的值。如果該路徑不存在,則該函數(shù)不會執(zhí)行任何操作。
json_doc
是要修改的JSON數(shù)據(jù),path
是指定路徑,val
是要替換的值。
- JSON_REMOVE(json_doc, path) 或 ->> (json_doc, path) = NULL:從JSON文檔中刪除指定路徑的值。如果該路徑不存在,則該函數(shù)不會執(zhí)行任何操作。
json_doc
是要修改的JSON數(shù)據(jù),path
是指定路徑。
- JSON_LENGTH(json_doc, path):返回JSON文檔中指定路徑的鍵的數(shù)量(對于對象)或元素的數(shù)量(對于數(shù)組)。
json_doc
是要處理的JSON數(shù)據(jù),path
是指定路徑。
- JSON_TYPE(json_doc, path):返回JSON文檔中指定路徑的數(shù)據(jù)類型(‘ARRAY’、‘OBJECT’、‘STRING’、‘NUMBER’、‘NULL’或’TRUE’/‘FALSE’)。
json_doc
是要處理的JSON數(shù)據(jù),path
是指定路徑。
- JSON_UNQUOTE(json_doc):去掉JSON文檔中字符串值兩端的引號。
json_doc
是要處理的JSON數(shù)據(jù)。
- JSON_QUOTE(json_doc):將JSON文檔中的值轉(zhuǎn)換為帶引號的字符串。
json_doc
是要轉(zhuǎn)換的JSON數(shù)據(jù)。
這些函數(shù)提供了對JSON數(shù)據(jù)的豐富操作功能,使得在MySQL中處理JSON數(shù)據(jù)變得更加靈活和方便。