你好,
我正在尝试编写一个基于测试对其用户进行预测的系统。作为其中的一部分,我只希望数据库存储最近的 500 个值。
我正在存储的当前字段是
ID (Auto increment)
USERID (the users unique ID)
SCORE(an integer)
在理想的世界中,当唯一用户在数据库中获得超过 500 条记录时,我希望系统删除最旧的行。有没有一种简单的方法可以在 PHP 中自动执行此操作而不会使代码变得非常繁重?
你好,
我正在尝试编写一个基于测试对其用户进行预测的系统。作为其中的一部分,我只希望数据库存储最近的 500 个值。
我正在存储的当前字段是
ID (Auto increment)
USERID (the users unique ID)
SCORE(an integer)
在理想的世界中,当唯一用户在数据库中获得超过 500 条记录时,我希望系统删除最旧的行。有没有一种简单的方法可以在 PHP 中自动执行此操作而不会使代码变得非常繁重?
您必须存储一个日期/时间字段,以便您可以确定超过 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))
但这将是非常不可靠的。