问:用sql批量删除过期数据的办法

保存资源点击量的一个表

[table]
|resource_id resource_type hits insert_time|
|1 blog 5 2009-07-08|
|1 blog 12 2009-07-09|
|3 blog 5 2009-07-08|
|3 blog 12 2009-07-09 |
|1 topic 23 2009-07-08|
[/table]

...........

就是这样一个表
现在要定时删除 过期的数据
像上面的 第一行数据
[code="java"]1 blog 5 2009-07-08[/code]
相比 第二行已经过期了
[code="java"]1 blog 12 2009-07-09[/code]

怎样用mysql删除这张表中的过气数据?
[b]问题补充:[/b]
回答的童鞋能否给出sql?

我的办法,比较土点.
[code="sql"]
--找出需要保留的记录,放临时表里
create table temp (select resource_id,resource_type,hits,max(insert_time) from res group by r.resource_id);
--清空原表
truncate table res ;
--导回记录

insert into res select * from temp ;

[/code]

望有用.

你在插入新数据之前,比如第二批.删除过期数据,比如第一批...
判断时间小于当前时间的,而resource_id,resource_type相同...

你定期进行查询嘛

取出所有查询条件为resource_id resource_type 相等的记录,以insert_time字段进行排序取出,那就保留最大的一个,其它的都删除

delete * where insert_time<'当前时间如sysdate'and resource_id='插入的id' resource_type ='插入的type如blog'

delete from table where insert_time<'2009-07-09'
这张表在业务中不是很紧要的话,建议查询出大于一定日期没过期的数据到一张临时表,然后用truncate删除数据。最后恢复表。