while循环和毫秒

时间:2012-12-14 19:29:43

标签: mysql bash loops

我一直在根据时间戳删除数据库中的记录。

我的查询很简单

delete from calldetailrecord where StartTime between 1262321999000 AND 1309492799000;

1262321999000 = 2009年12月31日星期四23:59:59 GMT-0500(东部标准时间)

1296449999000 = 2011年1月30日星期日23:59:59 GMT-0500(东部标准时间)

毫秒,我用过:

http://www.ruddwire.com/handy-code/date-to-millisecond-calculators/进行计算

我想知道我怎样才能使用while循环逐月删除数据,并在没有更多数据时停止。

3 个答案:

答案 0 :(得分:2)

  

我想知道如何逐月删除一个while循环,当没有更多数据时它会停止。

如果要删除表中的所有数据,请使用truncate命令。

truncate calldetailrecord;

只需一个delete即可

delete from calldetailrecord;

答案 1 :(得分:0)

我认为你会以这种方式获得更好的表现:

Create table  new_table as select *  calldetailrecord where StartTime > 1309492799000

drop table calldetailrecord;
alter table new_table rename to calldetailrecord;

这解决了逐行删除的问题,这将是超慢的。

答案 2 :(得分:0)

看起来你想要选择性删除。 首先准备要删除的时间段,生成单个查询,然后运行它。

DELETE FROM calldetailrecord WHERE StartTime BETWEEN 1353897342 AND 1353897592 OR StartTime BETWEEN 1353897754 AND 1353897764;

您应该尽可能使用与db的最小连接。