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

createh54个月前 (02-01)技术教程22

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

根据我们上次学到的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从右边第一个开始)

相关文章

第一次运行 Python 项目,使用 python-pptx 提取 ppt 中的文字和图片

人工智能时代,最需要学习的编程语言是:python 。笔者是个 python 小白,昨天花了两个小时,第一次成功运行起来 python 项目 。项目是 powerpoint-extractor ,可以...

【Java深度干货】如何高效构造字符串(String)?

字符串在 Java 中是不可变的,无论构造,还是截取,得到的总是一个新字符串。下面看一下构造一个字符串(String)的源码:private final char value[]; public St...

二、Java字符串/时间处理(java字符串时间格式转换)

二、Java字符串/时间处理1、 文章背景工作已有五年之久,回望过去,没有在一线城市快节奏下学习成长,只能自己不断在工作中学习进步,最近一直想写写属于自己的文章,记录学习的内容和知识点,当做一次成长。...

Easysearch Java SDK 2.0.x 使用指南(三)

在 Easysearch Java SDK 2.0.x 使用指南(一) 中,我们介绍了 Easysearch Java SDK 2.0.2 的基本使用和批量操作功能。在 Easysearch Java...

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

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

Spring Security 接口认证鉴权入门实践指南

前言Web API 接口服务场景里,用户的认证和鉴权是很常见的需求,Spring Security 据说是这个领域里事实上的标准,实践下来整体设计上确实有不少可圈可点之处,也在一定程度上印证了小伙们经...