我有一个返回多个表的结果的查询
SELECT
p.id,
p.name,
GROUP_CONCAT(tc.comment) AS comments
FROM
people AS p LEFT JOIN comments AS tc
ON tc.pID = p.id
WHERE
p.projID = $project_id
GROUP BY
p.id,
p.name
当它返回注释时,它将它们全部放在一个列中,当我在页面上输出它们时,很难描述一个结束而另一个结束的开始。有没有办法在构建此查询时在每个注释后插入某种空行?通常情况下,当我输出结果时,我会在PHP中执行此操作,但在这种情况下,我不知道中断应该在哪里。
答案 0 :(得分:3)
Simpy在你的tc.com之后添加一个分隔符:
SELECT
p.id,
p.name,
GROUP_CONCAT(tc.comment, " | ") AS comments
FROM
people AS p LEFT JOIN comments AS tc
ON tc.pID = p.id
WHERE
p.projID = $project_id
GROUP BY
p.id,
p.name
这会放一个|每个tc.comment之间但会留下逗号作为分隔符。使用
GROUP_CONCAT(tc.comment SEPARATOR " | ")
如果你想替换逗号而不是添加到元素。
您可以(或者更具体地说)为新行添加“\ n”或“< br />”如果你输出到网页。