如何在mysql中将列拆分为多行(使用管道作为分隔符)?

时间:2018-06-05 06:17:21

标签: mysql sql substring

我有这样的表1:

col_raw

   |    COL1  |COL2|    COL3  |  COL4  |
   -------------------------------------
   |0123456789|Male|Basketball|Aquarius|
   -------------------------------------

我想将table1转换为table2,它由此列标题名称

组成

表2:

 Column Names: Phone Number | Gender | Hoby | Zodiak

如果您在mysql中查询过这个问题,请告诉我。谢谢!

1 个答案:

答案 0 :(得分:0)

如果你总是有4列,你可以使用下面的

select substring_index(column_name,'|',1) firstcol,
substring_index(substring_index(column_name,'|',2),'|',-1) secondcol,
substring_index(substring_index(column_name,'|',3),'|',-1) thirdcol,
substring_index(substring_index(column_name,'|',4),'|',-1) fourthcol
from table_name;

要理解上述内容,您可以尝试运行以下查询,您将看到如何在上述查询中多次使用substring_index来获取所需的详细信息

select substring_index(column_name,'|',1),
substring_index(column_name,'|',2),
substring_index(column_name,'|',3),
substring_index(column_name,'|',4)
from table_name;