【问题标题】:How to remove an empty key from MySQL json column如何从 MySQL json 列中删除一个空键
【发布时间】:2020-11-10 02:44:49
【问题描述】:

我有一个带有 json 字段的简单 MySQL 表。出于某种原因,json 字段包含一个我需要删除的空键。

我有什么:

身份证姓名信息 1斯科特{“”:“”,“键”:“值”} 2乔{“”:“”,“key2”:“value2”} 3 ed {"": "", "key3": "value3"}

我想要什么:

身份证姓名信息 1 斯科特 {"key": "value"} 2乔{“key2”:“value2”} 3 ed {"key3": "value3"}

我尝试了什么:

update t1 set info = REPLACE(info, '"": "",', ''); 

这有效,但仅适用于值为空的情况。但是,这不起作用

update t1 set info = JSON_REMOVE(info, '$.""');

样本数据https://www.db-fiddle.com/f/3xSRuCeqmAaRcrTUR32ARf/0

【问题讨论】:

标签: mysql json


【解决方案1】:

使用JSON_MERGE_PATCH的选项:

UPDATE
  `t1`
SET
  `info` =
    JSON_MERGE_PATCH(
      JSON_OBJECT(),
      JSON_SET(
        REPLACE(
          `info`, '"":', '"null":'
        ),
        '$.null',
        null
      )
    );

db-fiddle

【讨论】:

    猜你喜欢
    • 2012-02-28
    • 2012-11-08
    • 1970-01-01
    • 2018-06-29
    • 2020-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-05
    相关资源
    最近更新 更多