0
我有一个问题,这个问题对我来说很复杂,但对于你们中的一些人来说,这很容易。 这就是: 我有一个MySQL表像这样按照时区从sql表中进行排序和选择
id | username | time_zone | selected
1 XXX +4 1
2 XXX -6 0
3 XXX NULL 1
等。行数可以超过一百万。 (请注意,可能有用户的时区未定义。) 有一个PHP脚本,它通过cron作业每小时运行一次,并从表中选择一定数量的行。 现在是困难的部分。
- 从表中选择的行数必须等于每小时。 (
amount selected = COUNT()/24
) - 每一行不得超过一天选择一次(这就是为什么我在表格中添加“selected”列的原因)。
- 当他们的当地时间从下午1点到下午5点时,必须选择每个用户。
- 如果用户的时区未定义,则必须从5PM至8PM选择它们。
- 如果用户数量不够特定时间,例如具有时区+4的用户计数小于
COUNT()/24
,可以用未定义的用户或来自相邻时区的用户来补偿相等性。 - 如果有许多用户在指定的时间,他们可以传递到下一个邻居时区。
我不需要代码,但逻辑。如果有人能帮助我,我会很满。如果有任何问题,我可以更详细地了解。
该脚本目前的外观如何? – Vector 2013-05-09 18:35:46
我还没有脚本,因为我甚至不知道从哪开始。在我刚刚从表格中选择“COUNT()/ 24”来限制选择的数量之前,现在我添加了时区并且卡住了。当选择时,我选择'selected'列为1而不是选择该行两次,并在一天结束时一切都被更新为0 – 2013-05-09 18:38:28
如果您有3个或更多个时区,每个时区更多比COUNT()/ 24行?也许如果你解释了为什么行应该在当地时区下午1点到5点之间选择,有人可能会提出一个更简单的选择。 – Trevor 2013-05-09 19:24:48