我有两个 MySQL 表:stats(左)和 messages(右)
+------------+---------+ +---------+------------+-----------+----------+
| _date | msgcount| | msg_id | _date | time | message |
+------------+---------+ +----------------------+-----------+----------+
| 2011-01-22 | 2 | | 1 | 2011-01-22 | 06:23:11 | foo bar |
| 2011-01-23 | 4 | | 2 | 2011-01-22 | 15:17:03 | baz |
| 2011-01-24 | 0 | | 3 | 2011-01-22 | 17:05:45 | foobar |
| 2011-01-25 | 1 | | 4 | 2011-01-22 | 23:58:13 | barbaz |
+------------+---------+ | 5 | 2011-01-23 | 00:06:32 | foo foo |
| 6 | 2011-01-23 | 13:45:00 | bar foo |
| 7 | 2011-01-25 | 02:22:34 | baz baz |
+---------+------------+-----------+----------+
我填写了 stats.msgcount,但实际上它仍然是空的。我正在寻找一种查询方式:
- 计算每个 stats._date 的消息数量(注意 2011-01-25 上的零 msgcount)
- messages.time 是 24 小时格式。5 点(17:00:00)之后的所有消息都应计入第二天(注意 msg_id 3 和 4 计入 2011-01-23)
- 更新 stats.msgcount 以保存所有计数
我特别关心“晚于 17:00:00 计入次日”部分。这在(My)SQL 中可能吗?