MYSQL刪除重復數(shù)據(jù)的簡單方法
更新時間:2013年11月19日 14:47:24 作者:
業(yè)務中遇到要從表里刪除重復數(shù)據(jù)的需求,使用了下面的方法,執(zhí)行成功,大家可以參考使用
復制代碼 代碼如下:
CREATETABLE`users`(
`id`int(10)NOTNULLAUTO_INCREMENT,
`name`char(50)NOTNULL,
PRIMARYKEY(`id`)
)
復制代碼 代碼如下:
deletefromuserswhereidin(selectmin(id)fromusersgroupbynamehavingcount(name)>1);
結果報錯:1093youcan'tspecifytargettable....
原因是mysql刪除動作不能帶有本表的查詢動作,意思是你刪除users表的東西不能以users表的信息為條件所以這個語句會報錯,執(zhí)行不了。只要通過創(chuàng)建臨時表作為查詢條件。如下
復制代碼 代碼如下:
deletefromuserswhereidin(select*from(selectmin(id)fromusersgroupbynamehavingcount(name)>1));
還要注意deletefromusers這里不能用別名
其他方法。
復制代碼 代碼如下:
deleteusersasafromusersasa,(selectmin(id)id,namefromusersgroupbynamehavingcount(name)>1
)asbwherea.name=b.nameanda.id<>b.id;
建立臨時表:
復制代碼 代碼如下:
createtabletmp_usersselectmin(`id`),`name`fromusersgroupbyname;
truncatetableusers;
insertintousersselect*fromtmp_users;
droptabletmp_users;
您可能感興趣的文章:
- mysql 數(shù)據(jù)表中查找重復記錄
- MySQL 刪除數(shù)據(jù)庫中重復數(shù)據(jù)方法小結
- MySQL查詢重復數(shù)據(jù)(刪除重復數(shù)據(jù)保留id最小的一條為唯一數(shù)據(jù))
- 很全面的MySQL處理重復數(shù)據(jù)代碼
- MySQL數(shù)據(jù)庫中刪除重復記錄的方法總結[推薦]
- 有效查詢MySQL表中重復數(shù)據(jù)的方法和技巧分享
- MySQL 去除重復數(shù)據(jù)實例詳解
- 刪除MySQL重復數(shù)據(jù)的方法
- MySQL中刪除重復數(shù)據(jù)的簡單方法
- MySQL處理重復數(shù)據(jù)完整代碼實例
相關文章
Mysql 本地計算機無法啟動 mysql 服務 錯誤 1067:進程意外終止。
初學php接觸mysql,遇到一些問題,卸載重裝后,無法啟動mysql服務,網(wǎng)絡上有很多種說法,我這里將我解決這個問題的辦法提出2009-12-12
mysql添加索引方法詳解(Navicat可視化加索引與sql語句加索引)
索引用來快速地尋找那些具有特定值的記錄,如果沒有索引,執(zhí)行查詢時MySQL必須從第一個記錄開始掃描整個表的所有記錄,直至找到符合要求的記錄,表里面的記錄數(shù)量越多,代價就越高,下面這篇文章主要給大家介紹了關于mysql添加索引的相關資料,需要的朋友可以參考下2022-11-11

