在MySQL 8中,我們可以使用JSON_ARRAY_REMOVE函數(shù)從JSON數(shù)組中移除指定的項。JSON_ARRAY_REMOVE函數(shù)接受兩個參數(shù):json_array表示要從中移除項的JSON數(shù)組,以及value表示要移除的項。
JSON_ARRAY_REMOVE(json_array, value)
下面是一個實例,我們從JSON數(shù)組中移除值為2的項:
SELECT JSON_ARRAY_REMOVE('[1,2,3]', 2);
輸出結(jié)果為:
[1,3]
我們還可以從嵌套的JSON數(shù)組中移除項。以下是一個嵌套的JSON數(shù)組示例:
{ "name": "John", "age": 30, "cars": [ { "make": "Toyota", "models": ["Corolla", "Camry", "Rav4"] }, { "make": "Honda", "models": ["Civic", "Accord", "CR-V"] } ] }
現(xiàn)在,我們想要從“Honda”的“models”數(shù)組中刪除“Accord”項:
SELECT JSON_ARRAY_REMOVE(json_extract(json, '$.cars[1].models'), 'Accord') FROM test_table;
這將從嵌套的JSON數(shù)組中刪除指定的項,輸出結(jié)果如下:
["Civic","CR-V"]
總之,JSON_ARRAY_REMOVE函數(shù)是MySQL 8中非常實用的函數(shù),可以輕松地從JSON數(shù)組或嵌套的JSON數(shù)組中刪除指定的項。