Sintaks MySQL untuk mengemas kini pasangan kunci/nilai tertentu dalam tatasusunan JSON
P粉386318086
P粉386318086 2023-11-06 14:50:43
0
1
828

Saya mempunyai jadual dalam pangkalan data MySQL 5.7.12 dengan lajur JSON.

Data dalam lajur mempunyai struktur berikut (tatasusunan json mungkin mengandungi berbilang objek json):

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

Saya ingin memprogramkan UPDATE查询,将tpe=PBste perubahan nilai.

Ini adalah percubaan saya:

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

Keluaran pertanyaan hendaklah:

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

Ia tidak berfungsi - ia mengemas kini lajur kepada:

"$[0].tpe"

Bagaimana cara saya membuatnya berfungsi?

Edit

Saya rasa ini lebih masuk akal, tetapi masih mempunyai masalah dengan sintaks

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


P粉386318086
P粉386318086

membalas semua(1)
P粉973899567

Semoga anda masih memerlukan ini.

Cuba kemas kini nilainya dalam JSON_SET中使用变量路径。使用JSON_SEARCH来获取变量路径,然后用绝对路径tpe替换为ste anda. Bekerja untuk saya!

update user set ext= JSON_SET(ext, REPLACE(REPLACE(JSON_SEARCH(ext, 'one', 'PB'),'"',''),'tpe','ste'), 'A');
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan