SQL删除除最后100之外的所有行

时间:2014-10-05 18:46:55

标签: mysql wordpress mysqli

我有一个数据库,每天都会向它添加大量行。它达到了一周左右的记录超过3万。我真的只需要最新的100条记录,所以我想定期进入并删除任何不是每页最新100条记录的记录。但是我确实有一两个例外需要处理。

我试过这样做:

$wpdb->query($wpdb->prepare("
                            DELETE FROM wp_tintup 
                            WHERE sponsored=''
                            AND pageID = '$pageID'
                            AND NOT EXISTS (
                                            SELECT * FROM wp_upvotes 
                                            WHERE wp_tintup.tintupID = wp_upvotes.postID
                                            )
                            ORDER BY id DESC
                            LIMIT 100, 1000000
                             "));

显然,LIMIT并不像这样在DELETE中工作,所以我需要一种方法来做到这一点......

我确实需要添加一件事。我想保留最后100行而忽略子查询的结果。

子查询可能会有3个结果,因此在该情况下,对于该pageID,它在完成时应该有103个记录。

0 个答案:

没有答案