非常に似ているが正確ではない重複したエントリがあります。ここではいくつかの例を示します。
- 2016: Obama's America
- 2016: Obama's America (VF)
- Hurt Locker
- The Hurt Locker
潜在的に似たものを取得するために使用できるクエリは何titles
ですか?
アップデート
正確な重複を削除しようとしているわけではないことに注意してください。単一の列で同様の値を選択しようとしているだけです。
非常に似ているが正確ではない重複したエントリがあります。ここではいくつかの例を示します。
- 2016: Obama's America
- 2016: Obama's America (VF)
- Hurt Locker
- The Hurt Locker
潜在的に似たものを取得するために使用できるクエリは何titles
ですか?
正確な重複を削除しようとしているわけではないことに注意してください。単一の列で同様の値を選択しようとしているだけです。
これが最良の方法であるか、最も効率的であるかはわかりません。間違いなく、同様の意味に依存します。意味が、タイトルが 1 つの行にすべてのテキストを含み、別の行に一部のテキストが含まれている場合、次のようなものが機能するはずです。
SELECT DISTINCT T.Title
FROM YourTable T
LEFT JOIN YourTable T2 ON T.Title != T2.Title
WHERE T.Title LIKE CONCAT('%', T2.Title, '%')
UNION
SELECT DISTINCT T2.Title
FROM YourTable T
LEFT JOIN YourTable T2 ON T.Title != T2.Title
WHERE T.Title LIKE CONCAT('%', T2.Title, '%')
ORDER BY Title
そして、これがSQL Fiddleです。
これは、文字列メトリックで文字列間の距離を測定することで解決できると思います。
レーベンシュタインは最もよく知られている指標のようで、私は Oracle でその実装を使用しました。MySQLにも実装されています。より適切に機能する他のメトリックが見つかる場合があります。