为提高效率,提问时请提供以下信息,问题描述清晰可优先响应。 【DM版本】: 达梦8 【操作系统】:centos 7 【CPU】: X86 【问题描述】*: 请问在使用达梦json字段对象的时候,是否能对json中的某个字段加索引。 例如 {"a":"bc123","b":"1245"} json 中的 "a" 字段。
可以使用虚拟列+虚拟列上的索引来实现类似的效果:
create table tb_json_test(id int PRIMARY KEY IDENTITY(1,1) ,j varchar(1000) check(j is json)); insert into TB_JSON_TEST(j) select '{"a":"bc123","b":"1245"}'; alter table tb_json_test add COLUMN j_a VARCHAR(1000) as(json_extract(j,'$.a')); create index idx_tb_json_test_ja on TB_JSON_TEST(j_a); SELECT * from TB_JSON_TEST WHERE j_a='bc123';
可以使用虚拟列+虚拟列上的索引来实现类似的效果:
create table tb_json_test(id int PRIMARY KEY IDENTITY(1,1) ,j varchar(1000) check(j is json)); insert into TB_JSON_TEST(j) select '{"a":"bc123","b":"1245"}'; alter table tb_json_test add COLUMN j_a VARCHAR(1000) as(json_extract(j,'$.a')); create index idx_tb_json_test_ja on TB_JSON_TEST(j_a); SELECT * from TB_JSON_TEST WHERE j_a='bc123';