0

我有如下表

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 函数?

sqlfiddle 中的数据

4

2 回答 2

0

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

SELECT id, CONCAT_WS('-', col1, col2, col3, col4, col5, col6, col7, col8, col9)
FROM your_table
于 2012-12-26T15:30:15.667 回答
0

这将完全按照您的要求返回输出:

SELECT CONCAT(id,' + ', col1,'-',col2,'-',col3,'-',col4,'-',col5,'-',col6,'-',col7,'-',col8,'-',col9) FROM `your_table` WHERE id = 1
于 2012-12-26T15:39:05.197 回答