SQL Social - онлайн пользователи - PullRequest
1 голос
/ 05 октября 2010

У меня есть стол

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 , что означает, что он онлайн.

Какой запрос можно отправить для переключения user_online на 0 (в автономном режиме), если последний визит пользователя был 10 минут назад?

Я уже так сделал

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

Но это не помогло.

1 Ответ

2 голосов
/ 05 октября 2010

Вы должны выполнить вычисления для констант, чтобы можно было использовать индекс для user_login_date:

UPDATE tbl_users
SET user_online = '0'
WHERE NOW() - INTERVAL 10 MINUTE > user_login_date
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...