前言:
创建索引的方式分为两种,CREATE index 和 ALTER TABLE;

被创建索引的关键字类型又分两种,数字(UNSIGNED)和字符串(char(128))

一、给json对象属性param_value(假如是长度128以下的字符串)创建索引

CREATE index `index_name` on  `table_name `(( CAST(`json_column_name`->>'$.param_value'  AS char(128)  ARRAY)));

二、给json数组创建索引

        1.给json数组里的对象属性param_value(假如是数字类型)创建索引

CREATE index `index_name` on  `table_name `(( CAST(`json_column_name`->>'$[*].param_value'  AS UNSIGNED  ARRAY)));

        2.也可以给json数组(加入存的是string)直接创建索引

CREATE index `index_name` on  `table_name `(( CAST(`json_column_name`->>'$[*]'  AS char(128)  ARRAY)));

三、查询索引

查询,提供了三个查询函数

MEMBER OF() 数组中是否存在某一值(如果是唯一匹配查询建议用这种否则选下面两种

JSON_CONTAINS() 数组中是否包含某些值,交集(必须都包含,此处注意mysql版本必须是8.024以上否则使用可能会失效)

JSON_OVERLAPS() 数组中是否包含某些值,并集(只要包含一个就行省的用JSON_CONTAINS一直OR)

Logo

欢迎加入我们的广州开发者社区,与优秀的开发者共同成长!

更多推荐