$result = mysql_query("SELECT id FROM tablename WHERE user_id=123 ORDER BY id DESC LIMIT 100,1");
$fetch = mysql_fetch_assoc($result);
mysql_query("DELETE FROM tablename WHERE id <".$fetch['id']." AND user_id=123");
你谈到选择日期,总是尽量选择最快的栏目。您的id
列可能是 auto_increment 并且上面有一个索引,这使得它成为一个快速列。日期值可能没有索引,因此速度较慢
小旁注:我正在使用 mysql_ 函数,您应该使用 mysqli_ 函数
我已经尝试过这些,但它们不起作用(对我来说):
DELETE FROM tablename WHERE user_id=123 LIMIT 100,9999
我想尝试的另一种方法是:
DELETE FROM tablename WHERE user_id=123
WHERE id NOT IN(SELECT id FROM tablename WHERE user_id=123 ORDER BY id DESC LIMIT 100)
但是子查询不支持限制(也许更新的版本支持,但我的不支持)
Marin Sagovac 建议这样做,但对我也不起作用:
DELETE FROM tablename WHERE user_id=123 LIMIT 10 OFFSET 100