要在第二个位置(索引 1)插入 "Alumni",语句如下:
UPDATE your_table SET your_json_column = JSON_ARRAY_INSERT(your_json_column, '$[1]', 'Alumni') WHERE id = your_id;
$[1] 表示插入到索引 1 的位置(数组从 0 开始,所以第二个位置是索引 1)MySQL 的 JSON 函数支持在一个语句中修改多个位置,比如 JSON_REPLACE,虽然通过链式调用可以实现多个位置替换,但很不方便也有一定写错数据的风险,更直接的是用 JSON_SET:
UPDATE `tab_abc`
SET fld_JsonDir = JSON_SET(
fld_JsonDir,
'$[0]', 'XX业务',
'$[1]', '新值1',
'$[2]', '新值2'
)
LIMIT 1;
如果一定想用 JSON_REPLACE,也可以通过传参的形式:
UPDATE `tab_abc`
SET fld_JsonDir = JSON_REPLACE(
fld_JsonDir,
'$[0]', 'XX业务',
'$[1]', '新值1',
'$[2]', '新值2'
)
LIMIT 1;