删除数据库的前X行

cor*_*ner 20 mysql sql-delete

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

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

DELETE FROM table WHERE something = value;
Run Code Online (Sandbox Code Playgroud)

那么,有没有办法建立一个像这样的查询:

DELETE FROM table WHERE rownumber <= X;
Run Code Online (Sandbox Code Playgroud)

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

Pol*_*ial 41

用于LIMIT删除:

DELETE FROM table WHERE condition LIMIT 10
Run Code Online (Sandbox Code Playgroud)

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

DELETE FROM table LIMIT 10
Run Code Online (Sandbox Code Playgroud)

请记住,删除行的顺序是未定义的 - 它取决于您的DBMS配置和表索引.您应该包含一个,ORDER BY以便按定义的顺序完成ORDER BY id ASC删除,例如,首先删除最低的ID.

有关详细信息,请参阅DELETEMySQL文档.