mysql列转行(逗号分隔)

mysql列转行(逗号分隔),第1张

mysql查询含逗号数据,将逗号拆分为多行展示: 原始数据如下: 现在因为新的需求,需要将这些数据转化为如下形式: 假设我们需要处理的表结构为: 使用如下sql语句即可实现需求: 查询的主要思路为,原表与一个包含连续自增长字段的表进行join,得到字符串分隔后的索引值,其中 length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 语句获得字符串逗号分隔之后得到的数据长度,两表关联之后,会得到相应行数的数据。比如, 在join之后会得到: 之后对查询中的结果,使用substring_index方法进行截取,然后得到我们自己想要的数据。

查询结果用引号逗号分隔。

这是使用MySQL以逗号分隔的列中包含引号的查询-mysql>selectconcat("'",replace(Name,",","','"),"'")ASIncludingQuotesfromDemoTable1407。

把tags进行分割,并和id关联起来

结果如图:

t_num_tmp为中间表,内容如下:

id的最大值为 len(tags分割后tag的数量)

通过t_num_tmp中间表把t_tags的一条记录复制为n份,n为tags分割后tag的数量。

再在这n份记录中, 通过对应的循环值, 取到对应的tag

https://www.cnblogs.com/tooy/p/8108602.html


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/7210447.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-02
下一篇 2023-04-02

发表评论

登录后才能评论

评论列表(0条)

保存