关于mysql json字段创建索引

前言:
创建索引的方式分为两种,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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值