mysql 修改 json 字段值的幾種方法:json_set() 函數(shù):設(shè)置指定路徑的新值。json_replace() 函數(shù):替換指定路徑處的現(xiàn)有值。json_modify() 函數(shù):使用 json patch 語(yǔ)法靈活修改 json 字段。json_remove() 函數(shù):刪除指定路徑的內(nèi)容。
如何修改 MySQL 中 JSON 字段的值
MySQL 提供了多種方法來(lái)修改 JSON 字段的值。您可以根據(jù)具體需求選擇最合適的方法。
方法 1:使用 JSON_SET() 函數(shù)
JSON_SET() 函數(shù)允許您為 JSON 字段中的特定路徑設(shè)置一個(gè)新值。語(yǔ)法如下:
JSON_SET(json_column, path, new_value)
登錄后復(fù)制
例如,要將 data JSON 字段中 name 字段的值修改為 “John Doe”,可以使用以下語(yǔ)句:
UPDATE table_name SET data = JSON_SET(data, '$.name', 'John Doe')
登錄后復(fù)制
方法 2:使用 JSON_REPLACE() 函數(shù)
JSON_REPLACE() 函數(shù)替換 JSON 字段中特定路徑處的現(xiàn)有值。語(yǔ)法如下:
JSON_REPLACE(json_column, path, new_value)
登錄后復(fù)制
例如,要將 data JSON 字段中 address.city 字段的值修改為 “New York”,可以使用以下語(yǔ)句:
UPDATE table_name SET data = JSON_REPLACE(data, '$.address.city', 'New York')
登錄后復(fù)制
方法 3:使用 JSON_MODIFY() 函數(shù)
JSON_MODIFY() 函數(shù)允許您使用 JSON Patch 語(yǔ)法來(lái)修改 JSON 字段。這提供了更高的靈活性和控制性。語(yǔ)法如下:
JSON_MODIFY(json_column, json_patch)
登錄后復(fù)制
例如,要在 data JSON 字段中向 tags 數(shù)組添加一個(gè)新元素 “sports”, 可以使用以下語(yǔ)句:
UPDATE table_name SET data = JSON_MODIFY(data, '$.tags', JSON_ARRAY_APPEND(data.tags, 'sports'))
登錄后復(fù)制
方法 4:使用 JSON_REMOVE() 函數(shù)
JSON_REMOVE() 函數(shù)允許您從 JSON 字段中刪除特定路徑。語(yǔ)法如下:
JSON_REMOVE(json_column, path)
登錄后復(fù)制
例如,要從 data JSON 字段中刪除 details 字段,可以使用以下語(yǔ)句:
UPDATE table_name SET data = JSON_REMOVE(data, '$.details')
登錄后復(fù)制