Mysql中字段分割字符串( 一行转多行 )

Posted jmrli

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql中字段分割字符串( 一行转多行 )相关的知识,希望对你有一定的参考价值。

t_customers 表中的一条记录:

技术图片

需要的结果:

技术图片

sql实现

SELECT
    a.id,
    a.username,
    SUBSTRING_INDEX( SUBSTRING_INDEX( a.operid, ;, b.help_topic_id + 1 ), ;,- 1 ) AS ids 
FROM
    `t_customers` AS a
    JOIN mysql.help_topic AS b ON b.help_topic_id < ( length( a.operid ) - length( REPLACE ( a.operid, ;, ‘‘ ) ) + 1 ); 

如mysql.help_topic: help_topic_id 共有504个数值 它们是mysql内部的连续数列表,连续数列的最大值一定要大于符合分割的值的个数。

------------------------------------------------------------------------------------------------------------------------------------

mysql 字段截取函数:

1、left(字段名,index) 从左边开始第index开始截取

2、right(字段名,index)从右边开始第index开始截取

3、substring(字段名,index)当index>0从左边开始截取直到结束  当index<0从右边开始截取直到结束  当index=0返回空

4、substring(字段名,index,len)从index开始,截取len长度

5、substring_index(字段名,str,count),str是截取的字段 count是从哪里开始截取(0从左边第0个开始,-1从右边第一个开始)

以上是关于Mysql中字段分割字符串( 一行转多行 )的主要内容,如果未能解决你的问题,请参考以下文章

数据分析--积累--presto--一列转多行--数组分割展开

数据分析--积累--presto--一列转多行--数组分割展开

oracle 以‘’分割的长字段拆分成多个(很多)字段

mysql查询怎样智能分割字符串?

Mysql数据处理/行转列/列转行/分割/拼接/数据复制汇总

SQL一字段内的字符串按照特定字符串转化为多行显示