2012-09-23 98 views
0

因此,当用户在我的网站上在线时,如果他们在15分钟内处于非活动状态,我想将他们的状态设置为闲置状态,以我的数据库中的“在线”表中的列表示,如果它们停用超过30分钟我想完全删除行而不是更新列。如何根据条件进行更新或删除查询?

有没有办法在一个查询中做到这一点?谢谢。

+0

为什么要删除用户?这是注册用户还是只有客人? –

+0

他们是注册用户,即时删除他们在“在线”表中的行而不是“用户”表。当用户登录时,行被放入在线表中 –

+3

为什么你有在线表格?将datetime字段放在用户表中,并将其命名为“last_active”。更新每个用户操作的这个时间字段。如果时间超过15分钟,用户闲置,如果时间超过30分钟,用户不在此处。 –

回答

0

在一个查询中执行此操作的唯一方法是在表上设置一个触发器,以便ON UPDATE删除超过不活动删除阈值(30分钟)的任何行。

但是,这只是两个查询,最终 - 它只是数据库执行之后执行一个。

不要害怕多个查询,它们非常快!