【发布时间】:2018-07-23 07:45:29
【问题描述】:
我有一个 SQLite3 数据库,我想从中删除具有相同值的两个字段的行。
看来我可以通过这个查询选择这样的值:SELECT * FROM mydb GROUP BY user_id, num HAVING COUNT(*) > 1
但是我无法删除它们。DELETE FROM mydb WHERE user_id IN (SELECT * FROM mydb GROUP BY user_id, num HAVING COUNT(*) > 1)
返回语法错误。
这是我所期望的:
例子:
id user_id num
1 1 1
2 1 1
3 2 1
4 1 2
5 2 2
在此示例中,id 1 和 2 的两列(user_id 和 num)具有相同的值,因此应将其删除。最好但不一定我想要一个解决方案,只留下一个这样的行(不管哪一行)。
结果:
id user_id num
2 1 1
3 2 1
4 1 2
5 2 2
注意:id 是主键。 user_id 是外键。 num 是一个整数。
【问题讨论】:
标签: sqlite