看起来我们的首选项表中可能有一些重复的值,所以我想删除每个用户的所有重复条目,但最近的一个。我花了很长时间试图想出一个解决方案,但我一直在转圈。我已经尝试过最大值、分组方式、子查询等。删除最高的很容易,但除了最高的以外,不是所有的。特别是对于每个用户
所以在数据库中我可能有:
id : name: value : userId
1 : sortOrder: Asc : 1
2 : sortOrder: Desc : 1
3 : sortOrder: Asc : 2
4 : something: value2 : 1
所以在这种情况下,我想删除第一行,因为它对于用户 1 是重复的并且具有最高的 id 并保留所有其余的列。
所以我知道它至少是一个带有 group by 的子查询,但我就是想不通。到目前为止,我有:
SELECT
MAX(id),
name
FROM
preference
GROUP BY
name
这给了我一个我想要保留的列表,但它仍然错过了每个用户。所以如果我为每个用户都拥有它,我有点想要相反的东西。但是我不相信我可以在子查询中使用 <> 。
我最终想要做的是删除所有那些对于同一用户具有较低 ID 的重复条目。