我有一个数据库,每天都会向它添加大量行。它达到了一周左右的记录超过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个记录。