我有一个关于删除所有已注册超过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小时的未激活帐户。
答案 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天?或者你想要多长时间。但这并不是说整个网站每三天会发布一次脚本。这只是一个人。除非多个用户同时注册,否则这将是脚本启动的唯一时间。希望能回答你的问题。