巧用SQL語句刪除重復(fù)記錄
如果需要用SQL語句刪除重復(fù)記錄,如何把具有相同字段的記錄刪除,只留下一條,應(yīng)該如何做呢?下面就將教您實(shí)現(xiàn)的SQL語句寫法。
例如表frmZHProductResult里有id,zhproductid字段,如果有zhproductid相同的記錄只留下一條,其余的刪除。zhproductid的內(nèi)容不定,相同的記錄數(shù)不定。
那么只要把重復(fù)數(shù)據(jù)列出來,不就可以了?于是為了不馬上刪除數(shù)據(jù).我先把想要?jiǎng)h除的數(shù)據(jù)列出來,看是否有錯(cuò):
- SELECT * FROM frmZHProductResult
- where id<>(select max(id) from frmZHProductResult d
- where frmZHProductResult.zhproductid =d.zhproductid )
- AND zhproductid in (select zhproductid from frmZHProductResult b
- GROUP BY ZhproductId HAVING COUNT(ZhproductId)>1)
結(jié)果,的確是我所想要的數(shù)據(jù).
呵呵,那么直接刪除了.把select * from 換成 Delete
【編輯推薦】