mysql在100之后从表中删除

时间:2012-07-27 07:21:39

标签: mysql

现在我试图在数据库中保留一个用户的100条消息,我试图删除100条中的另一条消息

我的数据库是mysql。我的sql是

DELETE FROM userMessage WHERE id = ? limit 100, 9999;

但我的数据库版本不支持这个sql。

感谢:)

3 个答案:

答案 0 :(得分:2)

也许是这样的?

DELETE FROM userMessage WHERE id not in
(SELECT id FROM userMessage uM where user_id = ? ORDER BY id DESC LIMIT 100)

答案 1 :(得分:1)

为什么不在临时表中选择100条记录。然后删除旧表,然后重命名临时表名。

答案 2 :(得分:0)

拥有唯一的id,您可以使用此查询 -

DELETE t1
FROM
  table1 t1
LEFT JOIN (SELECT * FROM table1 ORDER BY id LIMIT 100) t2 -- Specify your LIMIT values here
  ON t1.id = t2.id
WHERE
  t2.id IS NULL

此查询将删除100之后的所有记录。