0

你好,

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

我正在存储的当前字段是

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

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

4

1 回答 1

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))

但这将是非常不可靠的。

于 2012-05-06T20:52:51.340 回答