mysql 字段排重_MySQL 根据单个、多个字段排重
情景是這樣的 首先我們業務需要 在一張流水表中需要進行流水的記錄 這個記錄是從別的平臺拉過來的數據 但是他們數據無唯一約束 即流水
這樣就很有可能出現單條數據重復的問題
所以這種情況 用join的話 效率可能不是很大 所以就寫了以下sql
注意 排重后還需保留一個唯一有效的記錄
根據單字段 排重
DELETE FROM `liushui` WHERE `username` IN(
SELECT * FROM(
SELECT `ID` FROM `liushui` WHERE `CODE` IN (
SELECT `username` FROM liushui GROUP BY `username` HAVING COUNT(*)> 1
)
AND `ID` NOT IN(
SELECT MIN(`ID`)FROM liushui GROUP BY `username` HAVING COUNT(*)> 1
)
) T
);
根據多個字段
DELETE FROM `liushui` WHERE `ID` IN(
SELECT * FROM(
SELECT `ID` FROM `liushui` WHERE (`username`,`jointime`) IN (
SELECT `username`,`jointime` FROM `liushui` GROUP BY `username`,`jointime` HAVING COUNT(*)> 1
)
AND `ID` NOT IN(
SELECT MIN(`ID`)FROM `liushui` GROUP BY `username`,`jointime` HAVING COUNT(*)> 1
)
) T
);
總結
以上是生活随笔為你收集整理的mysql 字段排重_MySQL 根据单个、多个字段排重的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 怎么查看ingress的规则_有机合成中
- 下一篇: linux cmake编译源码,linu