删除表MYSQL中除前100行之外的所有行

时间:2016-07-15 02:38:11

标签: php mysql phpmyadmin

我想知道是否有办法删除除mysql数据库中的表中的前100行之外的所有内容。可以使用phpmyadmin GUI完成此操作。

3 个答案:

答案 0 :(得分:2)

是的,有可能,取决于你的意思是“前100”。我假设您有一个自动增量主键列(例如id),“前100行”将是按该列排序时首先显示的行。如果是这样,要查找前100行的最后id,您需要写:

SELECT MAX(m.id) FROM (SELECT id FROM mytable ORDER BY id LIMIT 100) m

现在,您要删除id大于此最大值的所有行,因此您写下:

DELETE FROM
  mytable
WHERE
  id > (SELECT MAX(m.id)
        FROM
          (SELECT id FROM mytable ORDER BY id LIMIT 100) m);

以下是显示5行的sqlfiddle

答案 1 :(得分:1)

我可以建议你替代方法。让我知道它是否适合你?

CREATE TABLE newtable LIKE oldtable; 
INSERT newtable SELECT * FROM oldtable LIMIT 100;

它将创建一个包含前100条记录的新表,这样你就可以保留旧表的备份。如果你想要它,那么保留它或删除它。

答案 2 :(得分:0)

试试这个:

从表中删除id&gt; 0和id <101

这将删除1到100的记录,除非你创建它的循环..

循环将在存储过程中执行我猜...