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