当前位置: 首页 > news >正文

关于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)

http://www.lryc.cn/news/211944.html

相关文章:

  • “探索Linux世界:从CentOS安装到常见命令使用“
  • SVN出现Cleanup failed to process the following paths...
  • gitee上传项目
  • 实现文件上传和下载
  • 大数据-Storm流式框架(七)---Storm事务
  • Kafka - 3.x Kafka消费者不完全指北
  • Gerrit | 重磅! 2.x 版本升级到 3.x 版本----转
  • 使用c++编程语言,用递归的方法求第n个斐波那契数,代码如下
  • git config pull.rebase false
  • Spring面试题:(一)IoC,DI,AOP和BeanFactory,ApplicationContext
  • RabbitMQ如何保证消息不丢失呢?
  • VR步进式漫游,轻松构建三维模型,带来展示新形式!
  • 英语——分享篇——常用人物身份
  • 202310-宏基组学物种分析工具-MetaPhlAn4安装和使用方法-Anaconda3- centos9 stream
  • systrace/perfetto如何看surfaceflinger的vsync信号方法-android framework实战车载手机系统开发
  • 一文带你彻底弄懂js事件循环(Event Loop)
  • 数据结构与算法:二叉树之“堆排序”
  • gma 2 教程(三)坐标参考系统:2.基准面/椭球体
  • 【1day】复现广联达-Linkworks 协同办公管理平台信息泄露漏洞
  • Spring Cloud之ElasticSearch的学习【详细】
  • vscode免密码认证ssh连接virtual box虚拟机
  • 【Linux】Centos yum源替换
  • uniapp组件初始化的销毁(监听隐藏事件)
  • leetcode:1207. 独一无二的出现次数(python3解法)
  • 2023秋《论文写作》课程总结
  • Linux学习第27天:Platform设备驱动开发: 专注与分散
  • 最长公共子序列
  • 万字解析设计模式之工厂方法模式与简单工厂模式
  • One-to-N N-to-One: Two Advanced Backdoor Attacks Against Deep Learning Models
  • 洛谷 B2009 计算 (a+b)/c 的值 C++代码