【发布时间】: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, '$.""');
【问题讨论】:
-
这将教你首先将有效属性放在所有 JSON 上。
-
您使用的是 MySQL 5.7 吗? bugs.mysql.com/bug.php?id=79643
-
@StackSlave - 对吧?谁会想到mysql不会检查有效的json。
-
JSON 标准允许空字符串作为键吗? ecma-international.org/publications/files/ECMA-ST/ECMA-404.pdf