mysql去重復 保留一條怎么操作呢?一起來看下吧:
1、查找表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷
SELECT ????* FROM ????people WHERE ????peopleId?IN?( ????????SELECT ????????????peopleId ????????FROM ????????????people ????????GROUP?BY ????????????peopleId ????????HAVING ????????????count(peopleId)?>?1 ????)
2、刪除表中多余的重復記錄,重復記錄是根據單個字段(peopleId)來判斷,只留有rowid最小的記錄
DELETE FROM ????people WHERE ????peopleName?IN?( ????????SELECT ????????????peopleName ????????FROM ????????????people ????????GROUP?BY ????????????peopleName ????????HAVING ????????????count(peopleName)?>?1 ????) AND?peopleId?NOT?IN?( ????SELECT ????????min(peopleId) ????FROM ????????people ????GROUP?BY ????????peopleName ????HAVING ????????count(peopleName)?>?1 )
3、查找表中多余的重復記錄(多個字段)
SELECT ????* FROM ????vitae?a WHERE ????(a.peopleId,?a.seq)?IN?( ????????SELECT ????????????peopleId, ????????????seq ????????FROM ????????????vitae ????????GROUP?BY ????????????peopleId, ????????????seq ????????HAVING ????????????count(*)?>?1 ????)
4、刪除表中多余的重復記錄(多個字段),只留有rowid最小的記錄
DELETE FROM ????vitae?a WHERE ????(a.peopleId,?a.seq)?IN?( ????????SELECT ????????????peopleId, ????????????seq ????????FROM ????????????vitae ????????GROUP?BY ????????????peopleId, ????????????seq ????????HAVING ????????????count(*)?>?1 ????) AND?rowid?NOT?IN?( ????SELECT ????????min(rowid) ????FROM ????????vitae ????GROUP?BY ????????peopleId, ????????seq ????HAVING ????????count(*)?>?1 )
5、查找表中多余的重復記錄(多個字段),不包含rowid最小的記錄
SELECT ????* FROM ????vitae?a WHERE ????(a.peopleId,?a.seq)?IN?( ????????SELECT ????????????peopleId, ????????????seq ????????FROM ????????????vitae ????????GROUP?BY ????????????peopleId, ????????????seq ????????HAVING ????????????count(*)?>?1 ????) AND?rowid?NOT?IN?( ????SELECT ????????min(rowid) ????FROM ????????vitae ????GROUP?BY ????????peopleId, ????????seq ????HAVING ????????count(*)?>?1 )
6、消除一個字段的左邊的第一位:
UPDATE?tableName SET?[?Title?]=?RIGHT?([?Title?],(len([?Title?])?-?1)) WHERE ????Title?LIKE?'村%'
7、消除一個字段的右邊的第一位:
UPDATE?tableName SET?[?Title?]=?LEFT?([?Title?],(len([?Title?])?-?1)) WHERE ????Title?LIKE?'%村'
8、假刪除表中多余的重復記錄(多個字段),不包含rowid最小的記錄
UPDATE?vitae SET?ispass?=-?1 WHERE ????peopleId?IN?( ????????SELECT ????????????peopleId ????????FROM ????????????vitae ????????GROUP?BY ????????????peopleId
以上就是小編今天的分享,希望可以幫助到大家。