This question already has answers here:
Delete all rows except first N from a table having single column
(3个答案)
3年前关闭。
我想知道是否有一种方法可以删除除mysql数据库表中前100行以外的所有内容。可以使用phpmyadmin GUI完成此操作。
现在,您要删除
这是sqlfiddle,用于演示5行。
(3个答案)
3年前关闭。
我想知道是否有一种方法可以删除除mysql数据库表中前100行以外的所有内容。可以使用phpmyadmin GUI完成此操作。
最佳答案
是的,这是可能的,具体取决于您所说的“前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);
这是sqlfiddle,用于演示5行。
08-27 10:43