参考我之前关于小组联赛的问题 Mysql again, group by and display rest of rows
我需要从该查询获得第一天和最后一天
例如
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
在第一个例子中,它给了我2而不是22:/
答案 0 :(得分:8)
另一个选择(除了迈克尔的解决方案)是使用SUBSTRING_INDEX:
SUBSTRING_INDEX(str,delim,count)
带
count = 1
你得到第一天,
与
count=-1
你得到最后一个
答案 1 :(得分:2)
不要浪费时间尝试解析GROUP_CONCAT()
的第一个和最后一个。相反,只需将MIN()
和MAX()
与CONCAT()
结合在一起。
SELECT
user,
CONCAT(MIN(DAY)), ',', MAX(DAY)) AS f1
FROM yourtable
GROUP BY user