由特殊字符分隔的一列中的所有列数据说 -

时间:2012-12-26 15:29:07

标签: mysql

我的表格如下

create table myTable (id int, 
                  col1 varchar(20),
                  col2 varchar(20),
                  col3 varchar(20),
                  col4 varchar(20),
                  col5 varchar(20),
                  col6 varchar(20),
                  col7 varchar(20),
                  col8 varchar(20),
                  col9 varchar(20)
                 );

并将数据作为

insert into myTable values
(1, 'col1','col2','col3','col4','col5','col6','col7','col8','col9');

我想要的是输出

id +  AllInOne
++++++++++++++++++++++++++++++++++++++++++++++++++
 1 + col1-col2-col3-col4-col5-col6-col7-col8-col9
++++++++++++++++++++++++++++++++++++++++++++++++++

知道如何用最小的查询完成这项工作吗?我知道我可以使用CONCATENATE进行上述操作。但我需要的是另一种方式。也许是一些预定义的MySQL函数?

Data at sqlfiddle

2 个答案:

答案 0 :(得分:0)

使用CONCAT_WS连接字符串(跳过空字符串)和分隔符:

SELECT id, CONCAT_WS('-', col1, col2, col3, col4, col5, col6, col7, col8, col9)
FROM your_table

答案 1 :(得分:0)

这将完全按照您的意愿返回输出:

SELECT CONCAT(id,' + ', col1,'-',col2,'-',col3,'-',col4,'-',col5,'-',col6,'-',col7,'-',col8,'-',col9) FROM `your_table` WHERE id = 1