1.查找表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個字段(name)來判斷
select * from lib
where name in (select name from lib group by name having count(name) > 1)
2.刪除表中多余的重復(fù)記錄,重復(fù)記錄是根據(jù)單個字段(id)來判斷,只留有id最小的記錄
delete from lib
where name in (select name from (select name from lib group by name having count(name) > 1) as a)
and id not in (select min_id from (select min(id) as min_id from lib group by name having count(name)>1) as b)
3.刪除表中多余的重復(fù)記錄(多個字段),只留有id最小的記錄
DELETE FROM lib WHERE (`name`, version) IN
(SELECT t.`name`, t.version FROM
(SELECT `name`, version FROM lib GROUP BY `name`, version HAVING count(1) > 1 ) t)
AND id NOT IN ( SELECT dt.minid FROM
(SELECT min(id) AS minid FROM lib GROUP BY `name`, version HAVING count(1) > 1 ) dt);
參考:https://blog.csdn.net/JineD/article/details/126875291文章來源地址http://www.zghlxwxcb.cn/news/detail-543325.html
文章來源:http://www.zghlxwxcb.cn/news/detail-543325.html
到了這里,關(guān)于SQL語句刪除重復(fù)記錄且只保留一條有效記錄的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!