我有一个在cell_id(integer)字段中有重复值的表。
我想删除“n+1”记录与“n”值相同的记录
这样我就不会在相邻/连续的记录中有重复的值。
以前

id | user_id | cell_id
25 | 5973    | 6051
26 | 5973    | 6051
27 | 5973    | 6051
28 | 5973    | 100
29 | 5973    | 256
30 | 5973    | 256
31 | 5973    | 6051
32 | 5973    | 6051

之后
id | user_id | cell_id
25 | 5973    | 6051
28 | 5973    | 100
29 | 5973    | 256
31 | 5973    | 6051

最佳答案

我只需要使用join,它通过delete来表示:

delete from t
    using t t2
    where t2.cell_id = t.cell_id and t2.user_id = t.user_id and
          t2.id = t.id + 1;

关于sql - 如果表中的下一条记录与特定字段中的值相同,如何删除一条记录,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55939985/

10-09 17:30