Mysql 列转行
Mysql 列转行
开源中国首席公关 发表于7个月前
Mysql 列转行
  • 发表于 7个月前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 0

新睿云服务器60天免费使用,快来体验!>>>   

今天逛OSC的时候看见一个有意思的提问(https://www.oschina.net/question/2312022_2215630),Mysql列转行,提问内容如下:

mysql一条记录拆分成多条

我查出来的结果如下
id   relativeIds
2       10,15,21
能不能改成如下结果
id   relativeIds
2       10
2       15
2       21
直接在sql里面改 行不 ?

 这样的需求比较少见,原因就是这种表结构的设计连第一范式都违反了,但苦逼的程序员遇到问题总要解决不是,下面送上一段SQL

select a.id,substring_index(substring_index(a.relativeIds,',',b.help_topic_id+1),',',-1) 
from 
crm_user a
join
mysql.help_topic b
on b.help_topic_id < (length(a.relativeIds) - length(replace(a.relativeIds,',',''))+1)
order by a.id;

 

标签: mysql sql 列转行
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
粉丝 3
博文 13
码字总数 4465
×
开源中国首席公关
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: