MYSQL 操作 JSON 几个常用方法

| 选择喜欢的代码风格  

JSON_INSERT:


要在第二个位置(索引 1)插入 "Alumni",语句如下:

UPDATE your_table 
SET your_json_column = JSON_ARRAY_INSERT(your_json_column, '$[1]', 'Alumni')
WHERE id = your_id;

JSON_INSERT 使用说明:


  • $[1] 表示插入到索引 1 的位置(数组从 0 开始,所以第二个位置是索引 1
  • 原索引 1 及之后的元素会自动后移

JSON_REPLACE / JSON_SET:


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;

    JSON_SET / JSON_REPLACE 使用区分说明:


  • JSON_REPLACE: 只替换已存在的路径,如果路径不存在则不操作
  • JSON_SET: 替换已存在的路径,如果路径不存在则创建

 

CommandNotFound ⚡️ 坑否 - 其他频道扩展阅读:




发表评论