我有一张2.500.000行的表。所有这些行都有一个timestamp值。我想保留100行具有最大时间戳的行。我想删除所有其他值!!
$values_to_delete = db_delete('error_log_jira')
->condition('timestamp', 1423731524, '>')
->execute();
我有这个代码并且工作完美,但我不知道如何把我想要的东西放在这里可以帮助我的人?我需要一个真正的帮助!!
答案 0 :(得分:0)
让我们说你的表有2.500.000行称为TableA。你可以这样做:
创建一个临时表TableB,其列与TableB
根据时间戳
在TableB中插入这100行
删除TableA的所有行
在TableA中插入TableB的所有行并删除TableB
步骤2-4可以通过如下查询在sql中完成:
insert into TableB (SELECT * FROM TableA ORDER BY timestamp DESC LIMIT 100)