MySQL间隔-引入6个月未登录的用户

MySQL间隔-引入6个月未登录的用户,mysql,Mysql,我有一个简单的问题: $query1="SELECT * FROM wp_users WHERE now() < (last_login + INTERVAL 6 month)"; $result1=mysql_query($query1) or die(mysql_error()); while($rows=mysql_fetch_array($result1)){ $inactive_accounts[] = $rows['ID']; } $query1=“从

我有一个简单的问题:

    $query1="SELECT * FROM wp_users WHERE now() < (last_login + INTERVAL 6 month)";
$result1=mysql_query($query1) or die(mysql_error());

while($rows=mysql_fetch_array($result1)){  

    $inactive_accounts[] = $rows['ID'];
}
$query1=“从wp_用户中选择*现在()<(上次登录+间隔6个月)”;
$result1=mysql\u query($query1)或die(mysql\u error());
而($rows=mysql\u fetch\u数组($result1)){
$inactive_accounts[]=$rows['ID'];
}
我希望它能将6个月内未登录帐户的所有用户id都拉进来。我将其设置为,当他们登录时,它会将日期时间插入最后一个登录列

我只是想知道这个SELECT查询是否正常,因为我在测试它时遇到了麻烦。这会显示6个月未登录的用户的ID吗

谢谢

从上次登录SELECT * FROM wp_users WHERE last_login < date_sub(now(), INTERVAL 6 month)
从上次登录的wp\u用户中选择*日期
你说得对。您可能需要的是类似MySQL中的函数,所以

SELECT *
FROM wp_users
WHERE last_login < DATE_SUB( NOW(), INTERVAL 6 MONTH )
选择*
来自wp_用户
其中上次登录
你说得对。您可能需要的是类似MySQL中的函数,所以

SELECT *
FROM wp_users
WHERE last_login < DATE_SUB( NOW(), INTERVAL 6 MONTH )
选择*
来自wp_用户
其中上次登录
要测试代码是否有效,请手动调整用户的上次登录字段,并将其设置为>6个月前。当然,在您的开发环境中

要测试代码是否有效,请手动调整用户的上次登录字段,并将其设置为>6个月前。当然,在您的开发环境中

我认为这更容易阅读,也更清楚它的意图。在我脑子里,我不确定(上次登录+间隔6个月)是否有效。这就是date_add()和date_sub()函数的作用。不需要使用date_add和date_sub。就我个人而言,我更喜欢使用+/-的速记方法。但是比较器是错误的,它应该是
我认为它更容易阅读,也更清楚它的意图。我不确定(上一次登录+间隔6个月)是否有效。这就是date_add()和date_sub()函数的作用。不需要使用date_add和date_sub。就我个人而言,我更喜欢使用+/-的速记方法。但是比较器是错误的,应该是
这是最好的方法。请注意,
6个月
调整为
NOW()
,而不是
上次登录
。这意味着,优化者可以使用最后一次登录的索引作为第一个或唯一的字段。@nnichols感谢您选择输入错误。这是最好的方法。请注意,
6个月
调整为
NOW()
,而不是
上次登录
。这意味着,优化者可以使用最后一次登录的索引作为第一个或唯一的字段。@nnichols感谢您选择输入错误。