Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Concat单行mysql中的多行和多列_Php_Mysql - Fatal编程技术网

Php Concat单行mysql中的多行和多列

Php Concat单行mysql中的多行和多列,php,mysql,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,但它只给我一个以逗

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

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中可以吗

 select concat(id, ':',name, ':', age) as total_concated 
 from your_table 
 where 1
使用以下命令:

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

将组_concat和concat一起使用:

SELECT group_concat(concat(id',:',name',:',IFNULL(age',))
来自表1
您可以执行此操作以将“:”移到上方

SELECT group_concat(concat(id',:',name,IFNULL(concat(',:',age),''))
来自表1

以下是hims056创建的更新版本。

同时使用group_concat和concat:

SELECT group_concat(concat(id',:',name',:',IFNULL(age',))
来自表1
您可以执行此操作以将“:”移到上方

SELECT group_concat(concat(id',:',name,IFNULL(concat(',:',age),''))
来自表1

这是hims056创建的更新版本。

但是,这会删除Sam(空年龄)。“也需要考虑到这一点。”prashant-他已经更新了。请参阅@prashant如果年龄为null时不需要,您可能需要将
移动到IFNULL中。@xecaps12我如何移动:移动到IFNULL您可以再详细说明一下吗?但是,这会丢弃Sam(null年龄)。“也需要考虑到这一点。”prashant-他已经更新了。请参见@prashant如果年龄为null时不需要,您可能需要将
移到IFNULL中。@xecaps12我如何移动:移到IFNULL您能再详细说明一下吗