我试图在我的数据库中保留 10 个最近的条目并删除旧的。我试过 DELETE FROM people ORDER BY id DESC LIMIT $excess
,但它只是删除了前 10 个条目。
$query = "SELECT * FROM people";
$result = mysqli_query($conn, $query);
$count = mysqli_num_rows($result);
if ($count > 10) {
$excess = $count - 10;
$query = "DELETE FROM people WHERE id IN(SELECT id FROM people ORDER BY id DESC LIMIT '$excess')";
mysqli_query($conn, $query);
}
最佳答案
你可以使用这个:-
DELETE FROM `people`
WHERE id NOT IN (
SELECT id
FROM (
SELECT id
FROM `people`
ORDER BY id DESC
LIMIT 10
)
);
此外,您的查询在逻辑上也不正确,您正在按降序获取记录。即 Latest to older
并且您正在删除最新的记录。请改用 ASC
。
关于php - 删除旧的数据库条目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17326740/