json类型字段提取值,两边多出引号

【 TiDB 使用环境】测试
【 TiDB 版本】5.7.25-TiDB-v5.0.4
【复现路径】做过哪些操作出现的问题
CREATE TABLE test.city (
id INT PRIMARY KEY,
detail JSON
);
insert into test.city (id,detail) values(1,‘{“name”:“北京”}’);
insert into test.city (id,detail) values(3,‘[{“name”:“北京”},{“name”:“山西”}]’);
【遇到的问题:问题现象及影响】
SELECT JSON_EXTRACT(detail,‘$[1].name’) from test.city
json提取两边带引号
image

【资源配置】
【附件:截图/日志/监控】

这是正常的啊,mysql 也是这样的。要显示不带"",有两种方法:

  1. 方法1
select detail->>'$[1].name' from test.city;

2.方法2,再套用一个 JSON_UNQUOTE 函数。

 select JSON_UNQUOTE(JSON_EXTRACT(detail,'$[1].name')) from test.city;

这个需要升级到6.3版本才支持json

此话题已在最后回复的 60 天后被自动关闭。不再允许新回复。