对于基于记录的行索引或计数删除一条记录我有点困惑。假设我有以下三行:
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
有可能吗?
答案 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