【发布时间】:2013-12-13 19:22:28
【问题描述】:
数周以来,我一直在绞尽脑汁思考如何正确实现这一目标,一直在玩 PHP 和 mySQL,但我编写的每个公式或函数似乎都缺少一些东西。这正是我想要做的..
-填充登录记录的mySQL数据库。
-字段为 RECORD、START_TIME、DURATION、CUSTOMERID
-RECORD 是唯一键
-START_TIME 是“2013-12-12 10:32:59”类型格式
-DURATION 以秒为单位
-CUSTOMERID是用户的唯一账号
每个用户可以同时登录 3 次,任何一次超过 3 次的登录我都需要在“超额”期间为该用户计算所有会话的总 DURATION 秒数。
所以一个例子是..
RECORD | START_TIME | DURATION | CUSTOMERID
1 2013-1-1 12:00:00 10 BILLYBOB
2 2013-1-1 12:01:00 600 BILLYBOB
3 2013-1-1 12:04:00 1200 BILLYBOB
4 2013-1-1 12:05:20 500 BILLYBOB
5 2013-1-1 12:06:30 600 BILLYBOB
6 2013-1-1 16:00:00 100 BILLYBOB
7 2013-1-1 18:00:00 300 BILLYBOB
在这种情况下,它会返回记录 2、3、4、5,因为有超过 3 个同时会话,然后返回这些记录的总持续时间,即 2900。
这是否对 MySQL 要求过高?
【问题讨论】:
-
这很可能是一个非常难以理解和复杂的 SQL 查询。我的建议是在旨在处理逻辑的东西中创建它。比如编程语言;)
-
'overage' wassat? @user202172 '红布对公牛' ;-)
-
我正在使用 PHP,但我认为我的查询与查询中的查询的想法可能需要 10 个小时才能运行一个实例,哈哈
-
我会在检查登录时亲自添加此逻辑,而不是尝试对值进行后处理。例如,当尝试登录时,您可以检测当前登录的次数。
-
这当然是一个很好的难题。只是为什么,在找到重叠的记录后,你想要总结它们的持续时间让我无法理解。