SQL社交 - 在线用户

时间:2010-10-05 11:47:53

标签: mysql social-networking

我有一张桌子

CREATE TABLE `tbl_users` (
  `user_id` int(11) NOT NULL auto_increment,
  `user_username` tinytext NOT NULL,
  `user_password` tinytext NOT NULL,
  `user_email` tinytext NOT NULL,
  `user_enabled` tinyint(4) NOT NULL default '1',
  `user_verified` tinyint(4) NOT NULL default '0',
  `user_verified_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `user_signup_date` datetime NOT NULL default '0000-00-00 00:00:00',
  `user_login_date` datetime default NULL,
  `user_status` mediumtext NOT NULL,
  `user_online` tinyint(4) NOT NULL default '0',
  PRIMARY KEY  (`user_id`)
)

每次用户访问网站 user_login_date 时, user_online 设置为 1 ,这意味着他已在线。

如果用户上次访问的时间是10分钟,我可以发送哪些查询来将 user_online 切换为 0 (离线)?

我已经这样做了

UPDATE tbl_users SET user_online = '0' WHERE (NOW() - user_login_date) > INTERVAL 10 minute

但这没有帮助。

1 个答案:

答案 0 :(得分:2)

您应该对常量进行计算,以便可以使用user_login_date上的索引:

UPDATE tbl_users
SET user_online = '0'
WHERE NOW() - INTERVAL 10 MINUTE > user_login_date