仅在MySQL数据库中存储用户的最后500条记录

时间:2012-05-06 20:49:43

标签: php mysql phpmyadmin

Howdie,

我正在尝试编写一个基于测试对其用户进行预测的系统。部分原因我只希望数据库存储最近的500个值。

我正在存储的当前字段是

ID (Auto increment)
USERID (the users unique ID)
SCORE(an integer)

在理想的世界中,我希望系统在唯一用户在数据库中获得超过500条记录时删除最旧的行。是否有一种简单的方法可以在PHP中自动执行此操作而不会使代码真的很重?

1 个答案:

答案 0 :(得分:1)

您必须存储日期/时间字段,以便确定超过1个月的内容,然后它变得如此简单:

DELETE FROM yourtable
WHERE timestampfield > (NOW() - INTERVAL 1 MONTH)

如果你在auto_incremented ID中没有任何“空白”,你可以做一个非常简单的(并且非常容易出错):

INSERT INTO ....  <--add new record

DELETE FROM yourtable WHERE (id < (INSERT_ID() - 500))

但这将非常不可靠。