700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > Mysql 将逗号隔开的属性字段数据由列转行

Mysql 将逗号隔开的属性字段数据由列转行

时间:2023-12-15 13:07:51

相关推荐

Mysql 将逗号隔开的属性字段数据由列转行

Mysql 将逗号隔开的属性字段转行为行数据

Mysql 将逗号隔开的属性字段转行为行数据。

场景:

在开发时,我们会根据需求进行数据库表的设计。有时我们在设计数据表时无法很好的符合三大范式,原因场景的复杂性,假如时时刻刻遵顼三大范式,会增加我们的开发量。有时候我们会在一个属性值里用逗号隔开去存储一些id值等。当在查询的时候就需要将属性转换为行。

数据 : 解决:

select a.*,SUBSTRING_INDEX(SUBSTRING_INDEX(a.content,',',b.id),',',-1) contentfrom temp a join temp bwhere b.id <= LENGTH(a.content)-LENGTH(REPLACE(a.content,',',''))+1

结果:

函数解析

SUBSTRING_INDEX : 获取分隔符隔开后,根据最后参数索引获取字符串 ,负数为倒数

LENGTH : 字符串 长度

REPLACE : 替换字符串

总结:

join 表需要寻找一个表属性为1开始递增的。通常会利用 mysql.help_topic 这张表,但是这张表的数据id是有限的,甚至在一些情况下没有权限访问该表。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。