2013-03-21 182 views
2

我有這樣的乘客表日期: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陳述,但截至目前,我仍然無法獲得所需的輸出。請幫忙。

回答

2

您需要使用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