1

我有一些带有几个查询的现有代码,我正在尝试确定功能是否正确。查询在存储整数唯一 ID 的简单表上执行。所以代码执行第一个查询:

SELECT id FROM id_table LIMIT some_number;

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

DELETE FROM id_table LIMIT some_number;

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

谢谢

4

1 回答 1

2

你不应该那样做。根本问题是,除非您使用order by子句,否则无法保证使用limit.

您应该在同一列上order by同时使用 ,selectdelete, 如下所示:

SELECT id from id_table order by id LIMIT some_number;

DELETE from id_table order by id LIMIT some_number;

只要它是一致的,您就可以按您想要的任何东西进行排序,但这id将是 auto_increment 列的逻辑选择。

于 2013-08-01T03:33:28.707 回答