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を使用します。これは、文字列(null文字列をスキップ)を区切り文字で連結します。

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 に答える