更新JSON數組中特定鍵/值對的MySQL語法
P粉386318086
P粉386318086 2023-11-06 14:50:43
0
1
827

我有一個有JSON欄位的MySQL 5.7.12資料庫中的表格。

列中的資料具有以下結構(json數組可能包含多個json物件):

[{"ste": "I", "tpe": "PS"}, {"ste": "I", "tpe": "PB"}]

我想寫一個UPDATE查詢,將tpe=PBste的值改變。

這是我的嘗試:

更新使用者SET ext = JSON_SET(JSON_SEARCH(ext, 'one', 'PB', NULL, '$**.tpe'), '$.tpe', 'A');

查詢的輸出應該是:

[{"ste": "I", "tpe": "PS"}, {"ste": "A", "tpe": "PB"}]

它不起作用 - 它將列更新為:

"$[0].tpe"

我該如何使其工作?

編輯

我認為這更有意義,但文法仍然有問題

UPDATE user SET ext = JSON_SET(ext->JSON_SEARCH(ext, 'one', 'PS', NULL, '$**.tpe'), '$.tpe', 'A');


#
P粉386318086
P粉386318086

全部回覆(1)
P粉973899567

希望你仍然需要這個。

嘗試在你的JSON_SET中使用變數路徑。使用JSON_SEARCH來取得變數路徑,然後用絕對路徑tpe取代為ste來更新其值。對我有效!

update user set ext= JSON_SET(ext, REPLACE(REPLACE(JSON_SEARCH(ext, 'one', 'PB'),'"',''),'tpe','ste'), 'A');
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板