我有兩個MySQL表:統計(左)和消息(右)計數,每天的消息(17個以後計數第二天)
+------------+---------+ +---------+------------+-----------+----------+
| _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小時制。 AFTER 5點(17:00:00)所有的消息應該算第二天(通知MSG_ID 3和4計數2011-01-23)
- 更新stats.msgcount持有所有罪狀
我特別關注「晚於17:00:00第二天計數」部分。 (My)SQL中可能嗎?
感謝您的回覆!順便說一句 - 在_date和時間旁邊還有一個帶時間戳的列;那會更有效率嗎? – Pr0no 2012-04-07 09:01:04
只有在列中更正日期才能加快速度 - 然後您可以在該列上使用索引進行分組。如果您仍需要添加7小時或將日期部分作爲時間戳,它不會有太大變化。 – piotrm 2012-04-07 12:52:27