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

mysql逗号分隔字段拆成行简述

概述

在实际业务中总有一些字段内容是逗号分隔的,然后后续业务需要扩展时就很难受;

所以一般在这种情况下都是需要建立关联表,将字段内容拆分;

当前使用mysql版本
8.0.32

拆分demo

这里要注意mysql.help_topic表的记录行数,我这边mysql8700条左右;
需要保证mysql.help_topic的行数 >= 逗号个数 + 1(2个逗号3个内容,需要join成3行)

本质就是按照逗号个数将记录扩充,然后截取其中对应的内容

select
ahrc.id,ahrc.question_type,#从0开始
mht.help_topic_id,SUBSTRING_INDEX(
#通过逗号个数截取子串
SUBSTRING_INDEX(ahrc.question_type,',',mht.help_topic_id + 1),',',#截取子串最后一个元素
-1
) as split_contentfrom
#业务表
xxxxx ahrc
join mysql.help_topic mht
# help_topic_id 从0开始,逗号不存在时,逗号个数为0,不满足条件
#这里的help_topic_id在查询结果中即代表逗号个数
# 2个逗号有3个元素,需要join上3条记录
on mht.help_topic_id <= (
CHAR_LENGTH(question_type) - CHAR_LENGTH(REPLACE(question_type,',',''))
)
http://www.lryc.cn/news/322175.html

相关文章:

  • 最新梨花带雨网页音乐播放器二开优化修复美化版全开源版本源码下载
  • golang 操作redis
  • macOS - 获取硬件设备信息
  • 突破编程_C++_STL教程( queue 的基础知识)
  • Hystrix 容错机制数据监控可视界面无法加载
  • 【Java】POI解析excel
  • AI浸入社交领域,泛娱乐APP如何抓住新风口?
  • 遥感图像地物分类流程
  • JS13-事件的绑定和事件对象Event
  • pycorrector检测OCR错字实践
  • RDD算子介绍(三)
  • Redis的脑裂问题
  • 【算法】雪花算法生成分布式 ID
  • FFplay使用滤镜添加字幕到现有视频显示
  • 【Python + Django】Django模板语法 + 请求和响应
  • 大数据面试总结 四
  • Spring Boot: 使用MongoOperations操作mongodb
  • PyTorch 深度学习(GPT 重译)(六)
  • MyBatis3源码深度解析(十七)MyBatis缓存(一)一级缓存和二级缓存的实现原理
  • Go --- Go语言垃圾处理
  • 力扣每日一题30:串联所有单词的子串
  • vim | vim的快捷命令行
  • 项目管理平台-01-BugClose 入门介绍
  • web集群-lvs-DR模式基本配置
  • 基于深度学习的面部情绪识别算法仿真与分析
  • C语言经典面试题目(十六)
  • 【C语言】文件操作揭秘:C语言中文件的顺序读写、随机读写、判断文件结束和文件缓冲区详细解析【图文详解】
  • JAVA八股文面经问题整理第6弹
  • pytest相关面试题
  • Keras库搭建神经网络