sql >> データベース >  >> RDS >> Mysql

GROUPBYを使用してmysqlで文字列を連結する方法

    GROUP_CONCAT() 関数は値を単一の行に取得し、ユーザー定義変数を使用してsidの各値に番号を割り当てることができます グループ:

    select sid,
      group_concat(concat(rn, '. ', string) ORDER BY id SEPARATOR ' ') string
    from
    (
      select id,
        sid,
        string,
        @row:=case when @prev=sid then @row else 0 end +1 rn,
        @prev:=sid
      from yourtable
      cross join (select @row:= 0, @prev:=null) r
      order by id
    ) src
    group by sid
    

    SQL Fiddle withDemo を参照してください。 、結果は次のとおりです。

    | SID |        STRING |
    -----------------------
    |   1 | 1. AAA 2. BBB |
    |   2 |        1. CCC |
    |   3 | 1. ZZZ 2. EEE |
    


    1. MySQLでのUPPER()関数のしくみ

    2. パフォーマンスの驚きと仮定:STRING_SPLIT()

    3. CSVを解析し、GrailsのMysqlデータベースにエクスポートします

    4. SQLクエリの特殊文字