Mysql 删除数据库的前X行

Mysql 删除数据库的前X行,mysql,sql-delete,Mysql,Sql Delete,是否有SQL命令来删除数据库表的前X行 我有一个数据库表,其中包含一些信息,但没有id或自动递增值,还有一个程序处理该表的前X行。 之后,需要删除这些X行。因此,标准查询是: DELETE FROM table WHERE something = value; 那么,有没有一种方法可以构建如下查询: DELETE FROM table WHERE rownumber <= X; DELETE FROM table,其中rownumber在删除时使用LIMIT: DELETE FROM

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

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

DELETE FROM table WHERE something = value;
那么,有没有一种方法可以构建如下查询:

DELETE FROM table WHERE rownumber <= X;

DELETE FROM table,其中rownumber在删除时使用
LIMIT

DELETE FROM table WHERE condition LIMIT 10
或者,如果你不想要这个条件

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


有关详细信息,请参阅。

执行此操作时要非常小心。如果添加索引或类似的内容,select的顺序可能会改变。SQL server在不添加where子句的情况下可以最轻松地进行选择。这是正确的。通常的
按订购要求适用。我编辑以反映这一点。谢谢你的回答!我尝试过这个,但不幸的是,它只在给定条件时起作用。所以我现在使用
DELETE FROM表,其中a_字段>0限制X到目前为止,这是有效的。谢谢:-)@验尸官,你是想在MySQL工作台上试试吗?如果是这样的话,这是该工具的安全限制,而不是MySQL本身的限制。您应该能够在没有条件的情况下删除。仅供参考:StackExchange注释中的代码使用反勾号,即
`some code`
@多项式:再次感谢!您解决了我所有的问题:-)我确实用MySQL Workbench尝试过^^