1

GROUP_CONCAT() に関して次の質問があります。

私のテーブルは、次の形式を簡略化しています。

| userId | visitTime | position |
     1       TIME1         A
     1       TIME2         B
     1       TIME3         B
     1       TIME4         B
     1       TIME5         A
     1       TIME6         C

私の現在のSQL文では:

Select group_concat(position) from Table where userId=1

私は受け取ります

A、B、B、B、A、C

group_concat をグループ化して、次のような結果を得るにはどうすればよいですか。

  A,B,A,C

前もって感謝します!

編集:

次の visitTime からの同じ位置の複数回の発生のみをグループ化する必要がある、実際に連続した位置のシーケンスが好きです。

EDIT2:

私の期待される出力はA、B、A、Cです

例: ユーザー 1 が A から B に移動し、そこで彼は B に複数のエントリ (B、B) のために滞在し、その後 A に戻り、その後 C に移動します。

私は彼が使用したパスを取得するだけが好きです:

A から B へ A から C へ

したがって、ユーザーが別の位置に移動した場合、それは認識されるはずですが、ユーザーは再び戻ることができます。

4

4 に答える 4

2

構文は次のとおりです。

Select group_concat(distinct position order by position)
from Table
where userId=1
于 2013-06-07T11:08:45.677 に答える
0

これに対する MySQL 専用の優れたソリューションが見つからないことは確かです。

アプリケーション層で行うことをお勧めします。

于 2013-06-07T11:14:25.900 に答える