如何在特定日期自动删除MySQL数据库中的行?

时间:2011-02-18 19:07:45

标签: php mysql

我知道必须有一种方法可以在指定的日期自动删除MySQL表中的行。我今天刚刚死了脑子:/

我们只是说我有CMS,我输入帖子,并希望表中的一个字段是“delete_date”,如果我在该字段中输入日期,它将在指定的日期删除该行。如果我没有输入日期,则不会自动删除。

使用PHP / MySQL执行此操作的最佳方法是什么?提示或示例会有所帮助。

3 个答案:

答案 0 :(得分:2)

运行计划任务(cron作业),删除delete_date字段大于或等于当前日期的所有行。

答案 1 :(得分:0)

基本查询:

DELETE * FROM cms_table WHERE delete_date='$the_date_to_delete'

(见:http://dev.mysql.com/doc/refman/5.0/en/delete.html

答案 2 :(得分:0)

我不懂PHP,但这确实是一个与语言无关的问题,除非你不知道如何用这种语言执行SQL。

您可以像@tylerl建议的那样运行计划任务。用.Net语言很容易,不确定PHP。如果您希望在一天中不断删除旧记录,您还可以选择运行服务。再次,在.Net中很容易。

但是,如果您有一个应用程序(PHP,.Net等),您想要物理检查要删除的记录:

delete * from myTable where recordDateField > 'cutOffDate' // I think you pass parameters with a `$` - not sure