Reputation: 5327
I am keeping the working time of companies. How can I group days depending on the working time?
I want output like
Sunday, Saturday 00:00:00 to 00:00:00
Monday, Tuesday, Wednesday, Thursday 10:00:00 to 18:00:00
Friday 10:00:00 to 13:00:00
Query output:
Array
(
[0] => Array
(
[id] => 8
[member_id] => 926
[day] => sunday
[from_time] => 08:00:00
[to_time] => 16:00:00
[created_id] => 926
[created] => 2013-12-13 08:33:03
)
[1] => Array
(
[id] => 9
[member_id] => 926
[day] => monday
[from_time] => 10:00:00
[to_time] => 18:00:00
[created_id] => 926
[created] => 2013-12-13 08:33:03
)
[2] => Array
(
[id] => 10
[member_id] => 926
[day] => tuesday
[from_time] => 00:00:00
[to_time] => 00:00:00
[created_id] => 926
[created] => 2013-12-13 08:33:03
)
[3] => Array
(
[id] => 11
[member_id] => 926
[day] => wednesday
[from_time] => 00:00:00
[to_time] => 00:00:00
[created_id] => 926
[created] => 2013-12-13 08:33:03
)
[4] => Array
(
[id] => 12
[member_id] => 926
[day] => thursday
[from_time] => 00:00:00
[to_time] => 00:00:00
[created_id] => 926
[created] => 2013-12-13 08:33:03
)
[5] => Array
(
[id] => 13
[member_id] => 926
[day] => friday
[from_time] => 00:00:00
[to_time] => 00:00:00
[created_id] => 926
[created] => 2013-12-13 08:33:04
)
[6] => Array
(
[id] => 14
[member_id] => 926
[day] => saturday
[from_time] => 00:00:00
[to_time] => 00:00:00
[created_id] => 926
[created] => 2013-12-13 08:33:04
)
)
How can I do this?
Upvotes: 0
Views: 73
Reputation: 2301
You can try like this,
SELECT
GROUP_CONCAT(DAY) AS 'DAY',
FROM_TIME AS 'IN'
TO_TIME AS 'OUT'
FROM TABLE_NAME
GROUP BY FROM_TIME, TO_TIME
ORDER BY DAY
Upvotes: 1
Reputation: 780984
SELECT GROUP_CONCAT(day) days, CONCAT(from_time, ' to ', to_time) times
FROM yourTable
GROUP BY from_time, to_time
Upvotes: 4