是否有删除数据库表的前 X 行的 SQL 命令?
我有一个包含一些信息但没有 id 或自动递增值的数据库表,以及一个处理该表的前 X 行的程序。之后需要删除这些 X 行。所以标准查询是:
DELETE FROM table WHERE something = value;
那么,有没有办法构建一个查询,如:
DELETE FROM table WHERE rownumber <= X;
我试过这个命令,但数据库没有任何反应。你有什么线索吗?
是否有删除数据库表的前 X 行的 SQL 命令?
我有一个包含一些信息但没有 id 或自动递增值的数据库表,以及一个处理该表的前 X 行的程序。之后需要删除这些 X 行。所以标准查询是:
DELETE FROM table WHERE something = value;
那么,有没有办法构建一个查询,如:
DELETE FROM table WHERE rownumber <= X;
我试过这个命令,但数据库没有任何反应。你有什么线索吗?
用于LIMIT
您的删除:
DELETE FROM table WHERE condition LIMIT 10
或者,如果你不想要这个条件
DELETE FROM table LIMIT 10
请记住,删除行的顺序是未定义的——这取决于您的 DBMS 配置和表索引。您应该包括一个ORDER BY
,以便按照定义的顺序进行删除,例如ORDER BY id ASC
首先删除最低的 ID。
有关更多详细信息,请参阅有关删除的 MySQL 文档。