- 應用場景:
- 數據表具有多個字段,其中某個字段的值重複了,比如針對一個商品數據,商品對應的網址鏈接可能重複,但是其他字段不一樣,此時我們只需要保留一個url即可,也即保留一整條數據,刪除其他的。
- 注意事項:
- 中間的查詢結果必須使用臨時變量保存在一個表格中,因爲不能把在同一表中查詢的數據作爲同一表的更新數據!
--假設根據字段‘url’來刪除重複的值,只保留id最小的一個
--把url值重複的數據保存在臨時表格a中
--把具有重複url值的最小id保存在臨時表格b中
--刪除具有重複url並且對應的id不在具有重複url的最小id列表內的數據
delete from TABLE where url in
(
select a.url from
(
select url from TABLE group by url having count(url)>1
)
as a
)
and id not in
(
select b.aa from
(
select min(id) as aa from TABLE group by url having count(url)>1
)
as b
)