1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MySQL中删除重复数据只保留一条

MySQL中删除重复数据只保留一条

时间:2018-09-30 10:53:09

相关推荐

MySQL中删除重复数据只保留一条

用SQL语句,删除掉重复项只保留一条

在几千条记录里,存在着些相同的记录,如何能用SQL语句,删除掉重复的呢

1、查找表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断

SELECT*FROMpeopleWHEREpeopleId IN (SELECTpeopleIdFROMpeopleGROUP BYpeopleIdHAVINGcount(peopleId) > 1)

2、删除表中多余的重复记录,重复记录是根据单个字段(peopleId)来判断,只留有rowid最小的记录

DELETEFROMpeopleWHEREpeopleName IN (SELECTpeopleNameFROMpeopleGROUP BYpeopleNameHAVINGcount(peopleName) > 1)AND peopleId NOT IN (SELECTmin(peopleId)FROMpeopleGROUP BYpeopleNameHAVINGcount(peopleName) > 1)

3、查找表中多余的重复记录(多个字段)

SELECT*FROMvitae aWHERE(a.peopleId, a.seq) IN (SELECTpeopleId,seqFROMvitaeGROUP BYpeopleId,seqHAVINGcount(*) > 1)

4、删除表中多余的重复记录(多个字段),只留有rowid最小的记录

DELETEFROMvitae aWHERE(a.peopleId, a.seq) IN (SELECTpeopleId,seqFROMvitaeGROUP BYpeopleId,seqHAVINGcount(*) > 1)AND rowid NOT IN (SELECTmin(rowid)FROMvitaeGROUP BYpeopleId,seqHAVINGcount(*) > 1)

5、查找表中多余的重复记录(多个字段),不包含rowid最小的记录

SELECT*FROMvitae aWHERE(a.peopleId, a.seq) IN (SELECTpeopleId,seqFROMvitaeGROUP BYpeopleId,seqHAVINGcount(*) > 1)AND rowid NOT IN (SELECTmin(rowid)FROMvitaeGROUP BYpeopleId,seqHAVINGcount(*) > 1)

6.消除一个字段的左边的第一位:

UPDATE tableNameSET [ Title ]= RIGHT ([ Title ],(len([ Title ]) - 1))WHERETitle LIKE '村%'

7.消除一个字段的右边的第一位:

UPDATE tableNameSET [ Title ]= LEFT ([ Title ],(len([ Title ]) - 1))WHERETitle LIKE '%村'

8.假删除表中多余的重复记录(多个字段),不包含rowid最小的记录

UPDATE vitaeSET ispass =- 1WHEREpeopleId IN (SELECTpeopleIdFROMvitaeGROUP BYpeopleId

技术交流学习或者有任何问题欢迎加群:154514123

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。