MySQL实现字段分割(一行转多行)(mysql 一行转多行)

createh53个月前 (02-01)技术教程18

先看一下数据结构,我这里字段比较少,只弄了最重要的部分

根据我们上次学到的LEFT()函数进行分组

SELECT LEFT(provinces,6),COUNT(1) FROM `region_map_copy` GROUP BY LEFT(provinces,6)

得到的结果如下:

这样的效果并不是我们想要的,我们是要210000所有的都合并起来

使用SUBSTRING_INDEX(),LEFT()这两个函数,在加help_topic这个表

help_topic:以字符拆分,一行转多行

SELECT
 COUNT(*),
  SUBSTRING_INDEX( SUBSTRING_INDEX( a.provinces, ',', b.help_topic_id + 1 ), ',',- 1 ) AS ids 
 FROM
 `region_map_copy` AS a
 JOIN mysql.help_topic AS b ON b.help_topic_id < ( LENGTH( a.provinces ) - LENGTH( REPLACE ( a.provinces, ',', '' ) ) + 1 )
 GROUP BY (SUBSTRING_INDEX( SUBSTRING_INDEX( a.provinces, ',', b.help_topic_id + 1 ), ',',- 1 )  )

结果如下:

得到了我们想要的

mysql 字段截取函数:

  • left(字段名,index) 从左边开始第index开始截取
  • right(字段名,index)从右边开始第index开始截取
  • substring(字段名,index)当index>0从左边开始截取直到结束 当index<0从右边开始截取直到结束 当index=0返回空
  • substring(字段名,index,len)从index开始,截取len长度
  • substring_index(字段名,str,count),str是截取的字段 count是从哪里开始截取(0从左边第0个开始,-1从右边第一个开始)

相关文章

100个Java工具类之70:字符串处理工具类StringUtils

StringUtils是常用的工具类,提供大量处理字符串的静态方法。StringUtils主要特点对null安全:如入参是null,方法不会抛出NullPointerException,而会返回相应的...

Java往oracle存clob类型的值时,字符长度过长怎么办?

业务场景将照片转为数字长串后,由于字符过长,java往数据库中直接存为clob字段时,oracle会报ORA-01704问题:字符串文字过长。这是因为一般对含有CLOB字段的数据操作。如果CLOB字段...

mysql拼接函数讲解及配合截取函数使用

在上一篇我们讲解了mysql的截取函数用法。本篇我们将讲解mysql的拼接函数以及配合截取函数实现当留言数字过多省略显示的场景。concat函数:把参数连成一个长字符串并返回(任何参数是NULL时返回...

我接手前同事写的烂Java代码,不小心搞出了一个内存泄露事故

目录String 字符串在内存里是如何存储的?String.intern() 方法String 字符串是如何引发内存泄漏呢?总结今天给大家聊聊咱们平时写代码的时候,最常见的 String 字符串代码,...

【推荐】一款 IDEA 必备的 JSON 处理工具插件 — Json Assistant

Json Assistant 是基于 IntelliJ IDEs 的 JSON 工具插件,让 JSON 处理变得更轻松!主要功能完全支持 JSON5JSON 窗口(多选项卡)选项卡更名移动至主编辑器用...

Java 提取PDF文档中的表格信息(java导出pdf表格)

在前文中我曾介绍过如何利用Java代码在PDF文档中创建表格。那对于一个已经包含有表格的PDF文档,想要提取其中表格信息进行编辑分析是否可行呢?答案是可以。用到的工具同样是Spire.PDF for...