为什么在1列中使用GROUP_CONCAT时要添加逗号分隔,而在多列中使用时为什么不加逗号?

时间:2019-04-09 13:26:49

标签: php mysql

我有1个表,其中包含6列(ID,用户名,开始,结束,标志,时间戳记),并且我试图使用GROUP_CONCAT来连接这些列。 一切工作正常,除了我没有用于列的分隔符。

SELECT GROUP_CONCAT(start, end, flag SEPARATOR ';') FROM time;

结果如下:

15531696461553177094End Time;15531779481553177962End Time;15531779561553177960End Lunch

我们在这里看到的是2个表中具有相同结构并使用分隔符;串联的列

在其他服务器上,将列除以,,结果是:

1553169646,1553177094,End Time;1553177948,1553177962,End Time;1553177956,1553177960,End Lunch

我不知道新服务器的不同之处,因为我无法访问旧服务器。

以前有人遇到过这样的事情吗?我受困于此,因为脚本的以下代码基于预览输出。我想要相同的输出:

1553169646,1553177094,End Time;1553177948,1553177962,End Time;1553177956,1553177960,End Lunch

2 个答案:

答案 0 :(得分:1)

您可以编写每条记录的列值,并在切换每条记录时切换记录添加;

SELECT GROUP_CONCAT(CONCAT_WS(',',start, end, flag) SEPARATOR ';') FROM time;

CONCAT_WS()代表Concatenate With Separator,是CONCAT()的一种特殊形式。

答案 1 :(得分:0)

首先,使用逗号Concat()列。然后,您可以执行Group_Concat()

SELECT GROUP_CONCAT(CONCAT(start, ',', end, ',', flag) SEPARATOR ';') FROM time;