首页 新闻 赞助 找找看

MySQL生成列(generated column)取值自JSON串有问题?

0
悬赏园豆:5 [待解决问题]

我们知道JSON类型的列不能创建索引,官方给的解决方法就是可以额外创建一个生成列(Generated Column),然后获取JSON串指定字段的值存储到该列中,但是如果获取的值是字符串类型的,那么也会把双引号存进去,这个怎么解决呢?

例如:

我有个表叫 commodity,其中有个字段叫 attributes,保存的json串,如下:

{"specId": "3845862150911746061", "extdata1": "rgba(255, 9, 9, 1)", "extdata2": "http://localhost:8080/123.png", "specName": "xx颜色", "specType": "颜色", "specValue": "yellow", "specValueId": "3845862150911746064", "specValueType": "红色系", "specValueTypeId": "3845862150911746056"}

我现在创建一个生成列,列的值来自于json串的字段specValue,如下语句:

alter table commodity add column v_spec_value varchar(15) as (attributes->'$.specValue') after attributes;

我查询下结果如下:


居然把双引号也存进去了,怎么办?

liaowenxiong的主页 liaowenxiong | 初学一级 | 园豆:33
提问于:2022-04-21 13:41
< >
分享
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册