SELECT之后删除 - mysql会保持相同的顺序吗?

时间:2013-08-01 03:30:21

标签: mysql

我已经获得了一些包含几个查询的现有代码,并且我试图弄清楚功能是否正确。查询在一个简单的表上执行,其中存储了整数唯一ID。 所以代码执行第一个查询:

SELECT id FROM id_table LIMIT some_number;

然后它对检索到的id执行一些操作并将其从表中删除:

DELETE FROM id_table LIMIT some_number;

根据我在mysql中的理解,订单无法保证(并且没有指定ORDER BY)。那么第二个查询是否会删除在第一个查询中检索到的相同记录,因为没有其他人对id_table进行查询?

由于

1 个答案:

答案 0 :(得分:2)

你不应该这样做。根本问题是,除非您使用order by子句,否则无法保证使用limit返回/删除行。

您应该在同一列中使用order byselect中的delete,如下所示:

SELECT id from id_table order by id LIMIT some_number;

DELETE from id_table order by id LIMIT some_number;

您可以按照您想要的任何顺序进行排序,只要它是一致的,但id将是auto_increment列的合理选择。