如何在MySql中用逗号分隔的值将多列转换为一列

时间:2019-07-10 17:06:46

标签: mysql sql concat group-concat

我有一个带有 15列的MySql表,并且我想将最后12列的所有值都放入一列,并用逗号分隔。

我的表名就像MyTable-

User Name     User ID     JAN   FEB   MAR   APR ...
User 01       001         10     30    40    50 ....
User 02       002          44     54   33    90 ..

我想要类似-

的结果
User Name     User ID     Values
User 01       001         '10','30','40','50'
User 02       002         '44','54','33','90'

如何在MySql Query中做到这一点。

感谢您的咨询。

3 个答案:

答案 0 :(得分:1)

使用concat

select username,userid,concat(jan,',',feb,',',mar,',',apr) from table

答案 1 :(得分:1)

使用CONCAT_WS(separator,str1,str2,...)

SELECT
    `User Name`,
    `User ID`,
    CONCAT_WS(',', JAN, FEB, MAR, APR, ...) as `Values`
FROM mytable

CONCAT()相比,您可以节省一些字节的代码,因为您只需编写一次分隔符。

答案 2 :(得分:0)

您可以使用以下concat方法-

SELECT 
`user name`,
`user id`,
CONCAT("'",JAN,"','",FEB,"'" ....) 'Values'
FROM MyTable