Mysql 我不需要表中的所有值

Mysql 我不需要表中的所有值,mysql,sql,database,drupal,drupal-7,Mysql,Sql,Database,Drupal,Drupal 7,我有一张250万行的桌子。所有这些行的值都是timestamp。我想保留100行具有最大时间戳的数据。。我要删除的所有其他值 $values_to_delete = db_delete('error_log_jira') ->condition('timestamp', 1423731524, '>') ->execute(); 我有这个代码,工作完美,但我不知道如何装箱的东西,我想要的是有人在这里可以帮助我??我需要一个真正的帮助 假设您的表有2.500.0

我有一张250万行的桌子。所有这些行的值都是timestamp。我想保留100行具有最大时间戳的数据。。我要删除的所有其他值

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

我有这个代码,工作完美,但我不知道如何装箱的东西,我想要的是有人在这里可以帮助我??我需要一个真正的帮助

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

  • 创建一个临时表TableB,其列与TableB相同

  • 编写一个查询,根据时间戳提取100行

  • 在表B中插入这100行

  • 删除表格A中的所有行

  • 在表格A中插入表格B的所有行并删除表格B

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

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

    如何创造我想要的东西。。你说的是什么意思?我说的话是指我之前说过的条件。请考虑下面的答案:这应该是一个复制品。当前链接在顶部的重复问题已被删除。