我不想要 table 中的所有值

I do not want all the values in my table

我有一个 table 有 2.500.000 行。所有这些行都具有时间戳值。我想保留具有最大时间戳的 100 行。我想删除所有其他值!!

$values_to_delete = db_delete('error_log_jira')
    ->condition('timestamp', 1423731524, '>')
    ->execute();

我有这段代码并且工作完美,但我不知道如何创建我想要的东西,这里有人可以帮助我吗??我需要真正的帮助!!

假设您的 table 有 2.500.000 行,称为 TableA。你可以这样做:

  1. 创建一个临时 table TableB,它与 TableB

  2. 具有相同的列
  3. 编写一个查询,根据时间戳提取 100 行

  4. 在表B中插入这100行

  5. 删除TableA的所有行

  6. 将TableB的所有行插入TableA并删除TableB

步骤 2-4 可以在 sql 中通过如下查询完成:

insert into TableB (SELECT * FROM TableA ORDER BY timestamp DESC LIMIT 100)