1

让我们假设我们有一个表,它的行仅由它们的位置标识,并且没有其他特殊差异(作为主键、id、时间戳等),并且由于 MySQL 'DELETE' 语法不允许 LIMIT 怎么做一个成功地删除了这样一个表中的一行。

喜欢:

DELETE FROM `table` LIMIT 49,1

因为可以:

SELECT * FROM `table` LIMIT 49,1

我提前感谢您的好意帮助回答。

4

2 回答 2

1

这不是一个有用的功能,因为无法保证表中行的顺序。在负载下,由于 MySQL 的行为,表总是会以不同的顺序出现。

您可以尝试以下方法,但如上所述,不能保证准确

DELETE FROM `table` 
     WHERE `col1` IN (SELECT `col1` FROM `table` LIMIT 49,1) 
        AND `col2` IN (SELECT `col2` FROM `table` LIMIT 49,1) 
        AND ...
     LIMIT 1;
于 2013-01-24T18:24:10.220 回答
1

表是集合;行没有位置。

于 2013-01-24T18:23:13.087 回答