MySQLテーブルからダブルレット(時にはトリプレット、残念ながら!)を削除しようとしています。私の問題は、利用可能な唯一のユニークなデータはプライマリキーなので、ダブルボックスを識別するためには、すべてのカラムを考慮する必要があります。ダブルテーブルの削除
私は二重引用符を持つすべてのレコードを識別し、二重引用符(一次キーを含む)と共にテーブルtemp
にコピーしました。ソーステーブルはtranslation
と呼ばれ、TranslationID
という名前の整数の主キーを持っています。私はここからどのように進むのですか?ありがとう!
編集利用可能な列は以下のとおりです。
TranslationID
LanguageID
Translation
Etymology
Type
Source
Comments
WordID
Latest
DateCreated
AuthorID
Gender
Phonetic
NamespaceID
Index
EnforcedOwner
二枚舌の問題が1
割り当てられLatest
列と行を持つ存在します。
編集#2ありがとう、皆さんありがとうございました!私は次のクエリで、その結果、WouterHさんに答えを使用して問題を解決しました:
DELETE from translation USING translation, translation as translationTemp
WHERE translation.Latest = 1
AND (NOT translation.TranslationID = translationTemp.TranslationID)
AND (translation.LanguageID = translationTemp.LanguageID)
AND (translation.Translation = translationTemp.Translation)
AND (translation.Etymology = translationTemp.Etymology)
AND (translation.Type = translationTemp.Type)
AND (translation.Source = translationTemp.Source)
AND (translation.Comments = translationTemp.Comments)
AND (translation.WordID = translationTemp.WordID)
AND (translation.Latest = translationTemp.Latest)
AND (translation.AuthorID = translationTemp.AuthorID)
AND (translation.NamespaceID = translationTemp.NamespaceID)
元のテーブルに保存するレコードは気になりますか? –
いいえ、私はどのレコードを保管してもかまいません。 – Leonard