根据行在表中的位置删除行

时间:2013-01-24 18:18:50

标签: mysql

让我们假设我们有一个表,其行仅由其位置标识,并且没有其他特定的差异(作为主键,id,时间戳等)和 因为MySQL'DELETE'语法不允许LIMIT如何成功删除这样一个表中的行。

像:

DELETE FROM `table` LIMIT 49,1

有可能:

SELECT * FROM `table` LIMIT 49,1

我事先感谢你的善意,以帮助解答。

2 个答案:

答案 0 :(得分:1)

表是集合;行没有位置。

答案 1 :(得分: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;