我们知道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;
我查询下结果如下:
居然把双引号也存进去了,怎么办?