我需要從MyISAM格式的MySQL表中刪除重複記錄(僅保留一個副本)。我已經閱讀了許多有關類似問題的Stackoverflow的問題,但總是人們使用一個ID字段作爲唯一的ID或類似的,我沒有這個字段,因爲我的「鑰匙」可以重複。我想刪除'Fecha'和'Equip'重複的行。使用密鑰刪除MySQL表中的重複記錄但不使用主鍵
CREATE TABLE `pfc` (
`Fecha` datetime NOT NULL,
`Equip` int(10) unsigned NOT NULL,
`Value` double NOT NULL,
KEY `Fecha` (`Fecha`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1 AVG_ROW_LENGTH=21 ROW_FORMAT=FIXED;
一個例子表數據:
Fecha | Equip | Value
06/02/2011 0:00:11 | 22 | 29.0
06/02/2011 0:22:11 | 22 | 45.3
06/02/2011 0:00:11 | 22 | 29.0
結果應該是:
Fecha | Equip | Value
06/02/2011 0:00:11 | 22 | 29.0
06/02/2011 0:22:11 | 22 | 45.3
這種結構是不可能改變。我無法使用PRIMARY KEY或UNIQUE INDEX解決方案。要創建沒有重複的臨時表,然後重命名也是一個不好的解決方案,因爲KEY和其他參數會丟失。
感謝
爲什麼臨時表是一個不好的解決方案?你總是可以重新創建索引。另外,如果Equip和Fecha是重複的,如果值不同,應該選擇什麼值? – Jacob
臨時表可以工作,但不能創建表「new_fc」作爲「Octopus-Paul」,然後將「new_pfc」重命名爲「pfc」。我如何使用節奏表來解決這個問題? –
您不必使用臨時表格,問題就有更優雅的解決方案。 –