MySQL的GROUP_CONCAT内而
问题描述:
我有这样的乘客表日期:MySQL的GROUP_CONCAT内而
这意味着在预订000004
,有两种路线这是行程0000010 (AAC Hangar - Anvaya Cove)
和0000011 (Anvaya Cove - AAC Hangar)
,并在每一个行程中,有两名乘客(0000007 (taiga)
和0000011 riyuuji
乘客0000010 AAC Hangar - Anvaya Cove while
0000008 minori and
0000012 ami are passengers of
0000011 Anvaya Cove - AAC Hangar)。
我试图用group_concat
到Concat的他们,但我能做的只有这样的:
$a=mysql_query("select group_concat(pass_name separator ', ') as 'pass' from passengers where reservno = '0000004' order by id asc") or die(mysql_error());
$b=mysql_fetch_array($a);
$c=$b['pass'];
与结果:taiga, minori, riyuuji, ami
。
但我希望它看起来像这样:taiga, riyuuji/minori, ami
这可能使用group_concat
?我知道这将涉及while
陈述,但截至目前,我仍然无法获得所需的输出。请帮忙。
答
您需要使用GROUP BY
条款
select group_concat(pass_name separator ', ') as 'pass'
from passengers
where reservno = '0000004'
GROUP BY reservno, id
order by id asc
更新1
SELECT group_concat(`pass` separator '/') `pass`
FROM (
select group_concat(pass_name separator ', ') as 'pass'
from passengers
where reservno = '0000004'
GROUP BY reservno, id order by id asc
) s
只输出'针叶林,riyuuji'。 – xjshiya 2013-03-21 06:08:49
不,它应该输出两个,在你的PHP脚本中,你没有循环'$ a',这就是为什么它只给你一个记录。 – 2013-03-21 06:10:25
我打开它,现在它只输出'minori,ami'。 – xjshiya 2013-03-21 06:12:26