在stackoverflow中进行了一点搜索之后,我找到了我想要的查询,它是这样的:
SELECT * FROM workers where TIMESTAMPDIFF(SECOND, last_activity_time, NOW()) >= (60/per_hour*60)
每个记录由以下字段组成:
id worker_name last_activity_time per_hour
因此,每个worker都有一个peru\ hour字段,它将被确定为每小时的操作数。
last activity是worker最后一次执行操作的时间。它将获得在当前时间运行的合格记录。
所以它将决定时间间隔 60/per_hour
以秒为单位,并选择从 last_activity_time
到目前为止还不止这个计算的时间间隔。
这没问题,但我想知道两件事。
1:这个查询是解决这个问题的好方法还是很慢?
2:这个查询怎么办 laravel 5.5
活动记录还是查询生成器?而且它应该一次返回一个记录。
提前谢谢
2条答案
按热度按时间ar7v8xwq1#
我认为你的查询很好,因为没有连接和子查询,只有条件存在。您可以在laravel上启动原始查询-
axkjgtzd2#
这应该管用
https://laravel.com/docs/5.6/queries
1:这个查询是解决这个问题的好方法还是很慢?
这将取决于你有多少工人,你应该试试看