假设我们有这些数据:
rc_id phonenumber
1 0
2 0
5 1
5 3
5 3
5 3
我希望删除匹配rc_id
5和phonenumber
3的记录,同时保留至少1个
最终结果应为:
rc_id phonenumber
1 0
2 0
5 1
5 3
注意:我不想使用唯一标识符
我现在正在使用此声明,但我注意到这也删除了所有其他重复项。
cmd.CommandText = "DELETE FROM tbl_data WHERE rc_id='5' AND phonenumber='3'";
答案 0 :(得分:0)
你可以在()
上使用RowNumber()delete from tbl_data where Rownumber() Over(partition by rc_id, phonenumber Order by rc_id) > 1
答案 1 :(得分:-1)
设置rowcount 1 从tbl_data删除 其中rc_id ='5'和phonenumber ='3'
答案 2 :(得分:-1)
这个怎么样:
cmd.CommandText = "DELETE FROM tbl_data WHERE rc_id='5' AND phonenumber='3'
LIMIT (SELECT COUNT(*)-1 FROM tbl_data WHERE rc_id='5' AND phonenumber='3')";