concat在单行mysql中有多行和多列

时间:2013-05-09 11:19:25

标签: php mysql

我有一个包含以下格式的数据的表

id    |    name   |   age
----------------------------
1     |    John   |   24
2     |    Sam    |   NULL
3     |    Ron    |   32
4     |    Harry  |   44

现在我想把它拿到像

这样的行中
1:John:24,2:Sam,3:Ron:32,4:Harry:44

我已尝试过group_concat,但它只给我一个用逗号分隔的列值,是否可以在mysql中使用?

2 个答案:

答案 0 :(得分:4)

使用group_concat并连接在一起:

SELECT group_concat(concat(id, ':', name, ':', IFNULL(age,''))) 
FROM table1

您可以执行此操作以将“:”移至

SELECT group_concat(concat(id, ':', name, IFNULL(concat(':',age),''))) 
FROM table1

这是hes056创建的更新SQLFiddle

答案 1 :(得分:0)

使用此:

 select concat(id, ':',name, ':', age) as total_concated 
 from your_table 
 where 1