删除所有未激活的帐户

时间:2011-08-23 22:04:32

标签: php sql sql-server

我有一个关于删除所有已注册超过24小时的未激活帐户的问题。我正在使用MSSQL。

数据库设置:

account | usrActivated | regTime
test           0         1314223187

SQL查询:

$time = 24 * (60 * 60);
DROP FROM ACCOUNT_TBL_DETAIL WHERE usrActivated=0 AND regTime < $time

如果我执行这样的查询,这会有用吗?删除超过24小时的未激活帐户。

4 个答案:

答案 0 :(得分:4)

delete from ACCOUNT_TBL_DETAIL
where usrActivated=0 AND regTime <= UNIX_TIMESTAMP(DATE_SUB(now(), INTERVAL 1 DAY));

假设您使用的是MySQL。

drop用于从数据库中删除表。 delete用于从表中删除记录。

答案 1 :(得分:1)

不像你表达的那样,因为那根本不会删除任何东西。除非您在1970年创建了帐户,否则无论如何。试试这个:

DELETE FROM ACCOUNT_TBL_DETAIL
WHERE usrActivated = 0
  AND regTime < UNIX_TIMESTAMP(NOW() - INTERVAL 1 DAY)

不要忘记进行测试运行(将DELETE替换为SELECT *)以确保符合您的要求。

答案 2 :(得分:0)

不要听起来太过怀疑,但我想你最终可能会删除在实际执行此SQL之前注册一秒的人。他/她可能正处于激活状态。

答案 3 :(得分:0)

  

我们说我在晚上11:59注册,浏览要观看的频道   更好的东西。删除脚本在凌晨12:00(1分钟后)启动   我开始注册)。我终于决定和吉米一起看深夜   跌倒在。我回来完成注册 - 尝试激活。   那会发生什么? - Arun 2011年8月24日15:50

您可以将其设置为单独删除未激活的位置。不仅仅是他们注册后的一天,但可能是3天?或者你想要多长时间。但这并不是说整个网站每三天会发布一次脚本。这只是一个人。除非多个用户同时注册,否则这将是脚本启动的唯一时间。希望能回答你的问题。

相关问题