2016-10-23 6 views
1

私はmysqlワークベンチで作業しており、1つの要件に取り組んでいます。ここで集計関数を使用せずにMySQLでGROUP_CONCATを実行するにはどうすればよいですか?

は、私はすでにGROUP_CONCAT機能を使用して、私の出力を持っている私のテーブルデータ

ID Name 
1 A 
1 B 
2 C 
2 D 
3 E 
3 F 

予想される出力

ID Name 
1 A,B 
2 C,D 
3 E,F 

です。しかし、私はこれらのような関数を使わずにこの問題を解決したい。

私はその可能性は知っていますが、このクエリを克服するロジックを設計することはできません。

お願いします。

ありがとうございました!

+4

なぜ* inbuilt *関数 'GROUP_CONCAT'を使用したくないのですか? –

答えて

1
select  id 
      ,max(names) as names 

from  (select  @prev_id := @id                   as previous_id 
         ,@id  := t.id                   as id 
         ,@name  := case t.id when @prev_id then concat_ws(',',@name,t.name) else t.name end  as names 

         ,name 

      from  t 

      order by t.id 
         ,t.name 
      ) t 

group by id 
; 
+0

@Shannin、新しい解決策をチェックしてください(回答は編集済みです) –

関連する問題