mysql查询包含逗号的数据,并逗号拆分为多行展现

  在做系统开发的时候,有可能是由于之前的遗留问题,导致在数据入库的时候,将多个数据以逗号分隔的实行,存储在一条数据中,例如:

ID   VALUE  
1   yang,zheng,song  
2   zhao,qian,sun  
3   jiang  

 

 

 

 

现在因为新的需求,需要将这些数据以下边的方式存储在数据库中,方便查询和处理:

ID   VALUE  
1   yang  
1   zheng  
1   song  
2   zhao  
2   qian  
2   sun  
3   jiang  

 

 

 

 

 

 

所以需要将原有的数据查询出来,然后进行逗号分隔为多行,并插入到新的表中。

假设我们需要处理的表的结构为:

NAME   TYPE   LEN  
ID   INT   11  
NAME   VARCHAR   255  

 

 

 

将数据查询并分隔的sql语句为:

SELECT a.id, substring_index( substring_index( a.name, ',', b.help_topic_id + 1 ), ',',- 1 ) name FROM table1 a JOIN mysql.help_topic b ON b.help_topic_id < ( length( a.name ) - length( REPLACE ( a.name, ',', '' ) ) + 1 ) ORDER BY a.id

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyzpfw.html