MYSQL-删除其行索引中的记录

时间:2018-10-04 13:45:23

标签: mysql

对于基于记录的行索引或计数删除一条记录我有点困惑。假设我有以下三行:

ID | userId | postID  
15      1       10  
16      1       10  
17      1       10

这些数据是通过查询获取的:

SELECT * FROM postimages where postID=10

我想基于一个位于变量index中的索引来删除其中一条记录。该索引可能是1,2或3,因此查询应该像这样:

delete from postimages where postID=10  -- here I'm stuck

有可能吗?

2 个答案:

答案 0 :(得分:2)

是的,只需使用limit-offset,就像这样:

delete from postimages where postID=10 limit 1 offset 1

此查询将删除1行,因为limit 1, 并且此行将是第二行,因为offset 1

要删除第一行-使用limit 1 offset 0
要删除第二行-使用limit 1 offset 1
要删除3d行-使用limit 1 offset 2,依此类推。

免责声明:为了获得可靠的体验,您必须指定order by子句,例如:

delete from postimages where postID=10 order by ID limit 1 offset 1

答案 1 :(得分:0)

像这样删除第n条记录。确保按所需的列(在这种情况下为id列)对结果进行排序:

DELETE FROM postimages WHERE postID=10 ORDER BY id LIMIT n-1,1