SELECT id, SUBSTRING_INDEX(SUBSTRING_INDEX(name,',',1),',',-1) AS name, SUBSTRING_INDEX(SUBSTRING_INDEX(name,',',2),',',-1) AS age, SUBSTRING_INDEX(SUBSTRING_INDEX(name,',',3),',',-1) AS sex FROM my_table;
以上SQL语句会将格式为”id,name,age,sex”的多列数据转换为多行数据。
SELECT id, SUBSTR(name,1,LOCATE(',',name)-1) AS name, SUBSTR(name, LOCATE(',',name)+1,LOCATE(',',name,LOCATE(',',name)+1)-LOCATE(',',name)-1) AS age, SUBSTR(name, LOCATE(',',name,LOCATE(',',name)+1)+1) AS sex FROM my_table;
以上SQL语句将使用SUBSTR()函数将多列数据转换为多行数据。
SELECT id, SUBSTRING_INDEX(name,',',1) AS name, SUBSTRING_INDEX(SUBSTRING_INDEX(name,',',2),',',-1) AS age, SUBSTRING_INDEX(SUBSTRING_INDEX(name,',',3),',',-1) AS sex FROM my_table;
以上SQL语句使用内置的SUBSTRING_INDEX()函数将多列数据转换为多行数据。
以上就是几种将多列数据拆分成多行数据的方法,根据实际需求选择相应的方法即可。