所以我有一個表ID
(AI,主鍵),ticker
,priceDate
,price
。刪除MySQL表中2個字段相同的重複項
我有一堆或共享相同的priceDate
和ticker
的記錄。對於任何給定的priceDate
,每個ticker
應該只有一條記錄。
因爲priceDate
和ticker
不是唯一的字段,我將如何去除這些重複的記錄?
所以我有一個表ID
(AI,主鍵),ticker
,priceDate
,price
。刪除MySQL表中2個字段相同的重複項
我有一堆或共享相同的priceDate
和ticker
的記錄。對於任何給定的priceDate
,每個ticker
應該只有一條記錄。
因爲priceDate
和ticker
不是唯一的字段,我將如何去除這些重複的記錄?
delete from your_table
where id not in
(
select * from
(
select min(id)
from your_table
group by pricedate, ticker
) x
)
非常感謝,認爲它做到了。出於興趣,最後'x'是什麼? – harryg 2013-05-10 12:54:24
如果你定義了一個子查詢,你需要用一個別名來命名它。我用'x'作爲別名。 – 2013-05-10 13:07:37
順便說一句,你需要這個子查詢,因爲MySQL不允許你從你正在選擇的同一個表中刪除。但是用另一個子查詢可以欺騙MySQL。 – 2013-05-10 13:09:21
此問題的解決方案已發佈。 http://stackoverflow.com/questions/4685173/delete-all-duplicate-rows-except-for-one-in-mysql/5016434#5016434 – 2013-05-10 12:49:28