7

グループ連結Mysqlに関する以前の質問を もう一度参照して、グループ化して残りの行を表示します

そのクエリから最初と最後の日を取得する必要があります

例えば

row 3 from 8,9,10 to first collumn 8, last collumn 10
row 5 from 21,22,23,24,28,29,30 to first collumn 21, last collumn 30
row 6 from 17,21,22,23,24,25 to first collumn 17 last collumn 25

SUBSTR(GROUP_CONCAT(DAY),-1) as fl

しかし、それは私に最後の文字を与えます、そして例えば1つか2つの文字を持ついくつかの行があります

1,2,3,22
1,3,6,3

最初の例では、22ではなく2が得られました:/

4

2 に答える 2

13

別のオプション(Michaelのソリューション以外)は、SUBSTRING_INDEXを使用することです。

SUBSTRING_INDEX(str,delim,count)

count = 1

あなたは最初の日を取得します、

count=-1

あなたは最後のものを手に入れます

于 2012-05-25T13:05:13.710 に答える
3

の最初と最後を解析しようとして時間を無駄にしないでくださいGROUP_CONCAT()MIN()代わりに、とをMAX()一緒に貼り付けてCONCAT()ください。

SELECT 
  user,
  CONCAT(MIN(DAY)), ',', MAX(DAY)) AS f1
FROM yourtable
GROUP BY user
于 2012-05-25T12:58:53.137 に答える