mysql根据lastlogin更新登录日期

时间:2013-05-01 08:10:42

标签: mysql login

我在mysql表中有以下结构:

-------------------------------------
| id | username | lastlogin  | days |
-----+----------+------------+-------
| 1  | user-xyz | 2013-04-29 | 0    |
-------------------------------------

上面的'lastlogin'列是日期列,'days'列是int(3)列。 我想做什么,当用户登录时,lastlogin列将像往常一样每次更新。同时,如果登录日期(用户登录时)大于lastlogin列的日期,则“days”列将增加。如果用户再次在同一天登录,则日期将相同(不会更新)。

在这种情况下,mysql查询是什么?

查询格式如下:

$logindate = date("Y-M-D",time());

UPDATE table
SET lastlogin=$logindate, days=days+1 if $logindate>lastlogin
WHERE usename=user-xyz

如果有任何帮助来构建查询,请提前感谢。

1 个答案:

答案 0 :(得分:0)

UPDATE table
SET days=days+IF($logindate=lastlogin, 0, 1), lastlogin=$logindate
WHERE username='xyz'

请注意lastlogin=$logindate必须在DATEDIFF之后显示,否则DATEDIFF将始终返回0,因为lastlogin = $ logindate首先发挥作用。