我有这样的MySQL表,
id time day
1 1:55 Mon
2 2:00 Sun
3 1:00 Mon
4 3:00 Tue
5 2:30 Sun
我可以使用此查询过滤所有结果
SELECT * FROM time_slots
但如何过滤此输出结果
Sun
-----
2:00 2:30
Mon
-------
1:00 1:55
Tue
------
3:00
这可能只使用MySQL获得结果,还是我应该使用PHP MySQL?
答案 0 :(得分:3)
将GROUP_CONCAT()
与GROUP BY
SELECT
day,
GROUP_CONCAT(`time` SEPARATOR ' ') AS times
FROM
time_slots
GROUP BY
day
ORDER BY
`time` ASC
答案 1 :(得分:1)
使用FIELD()功能从Sun
到Sat
的第二天订购。
试试这个:
SELECT t.day, GROUP_CONCAT(t.time SEPARATOR ' ') AS times
FROM time_slots t
GROUP BY t.day
ORDER BY FIELD(t.day, 'Sun', 'Mon', 'Tue', 'Wed', 'Thurs', 'Fri', 'Sat'), t.time