23

是否有删除数据库表的前 X 行的 SQL 命令?

我有一个包含一些信息但没有 id 或自动递增值的数据库表,以及一个处理该表的前 X 行的程序。之后需要删除这些 X 行。所以标准查询是:

DELETE FROM table WHERE something = value;

那么,有没有办法构建一个查询,如:

DELETE FROM table WHERE rownumber <= X;

我试过这个命令,但数据库没有任何反应。你有什么线索吗?

4

1 回答 1

48

用于LIMIT您的删除:

DELETE FROM table WHERE condition LIMIT 10

或者,如果你不想要这个条件

DELETE FROM table LIMIT 10

请记住,删除行的顺序是未定义的——这取决于您的 DBMS 配置和表索引。您应该包括一个ORDER BY,以便按照定义的顺序进行删除,例如ORDER BY id ASC首先删除最低的 ID。

有关更多详细信息,请参阅有关删除的 MySQL 文档

于 2012-10-08T10:40:05.030 回答