MySQL 字符串分割 一列变成多列

avatar 2021年03月11日15:35:47 6 7496 views
博主分享免费Java教学视频,B站账号:Java刘哥 ,长期提供技术问题解决、项目定制:本站商品点此

一个朋友提了一个问题,怎么把一列根据某个字符分割成多列(可能是0-5列,即最多5列)。

如 

a/b/c/d/e   ==>  a  b c d e

x/y/z          ==>  x  y z

 

并且我跟他确认了,每列的数据值不会相等,即 a b c d e 几个数不会相等

 

我这里造了一下数据,如下图

 

最终效果图

 

 

SQL 代码如下

select 
w.name1,
case when w.name1 != w.name2 then w.name2 else null end as name2,
case when w.name2 != w.name3 then w.name3 else null end as name3,
case when w.name3 != w.name4 then w.name4 else null end as name4,
case when w.name4 != w.name5 then w.name5 else null end as name5
from (
SELECT
	SUBSTRING_INDEX(t.name, '/', 1) AS name1,
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 2) ,'/', -1) AS name2, 
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 3) ,'/', -1) AS name3, 
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 4) ,'/', -1) AS name4, 
	SUBSTRING_INDEX( SUBSTRING_INDEX(t.name, '/', 5) ,'/', -1) AS name5
FROM
	test t
) w
	
	

 

 

  • 微信
  • 交流学习,资料分享
  • weinxin
  • 个人淘宝
  • 店铺名:言曌博客咨询部

  • (部分商品未及时上架淘宝)
avatar

发表评论

avatar 登录者:匿名
匿名评论,评论回复后会有邮件通知

  

已通过评论:0   待审核评论数:0