MySQL的GROUP_CONCAT内而

MySQL的GROUP_CONCAT内而

问题描述:

我有这样的乘客表日期:MySQL的GROUP_CONCAT内而

enter image description here

这意味着在预订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 
+0

只输出'针叶林,riyuuji'。 – xjshiya 2013-03-21 06:08:49

+0

不,它应该输出两个,在你的PHP脚本中,你没有循环'$ a',这就是为什么它只给你一个记录。 – 2013-03-21 06:10:25

+0

我打开它,现在它只输出'minori,ami'。 – xjshiya 2013-03-21 06:12:26