オペレーターの入力エラーが原因でレコードが重複した名前、会社、または製品のテーブルがあります。
この問題を管理するためのツールを作成しようとしています。トラフィックの多いページにはなりませんが、レコードセットを作成するときにデータベースを強制終了することはありません。次のクエリがありますが、処理に数分かかります (長すぎます)。
SELECT
tab1.id as id1,
tab1.creative as creative1,
tab2.id as id2,
tab2.creative as creative2
FROM
creatives tab1,
creatives tab2
WHERE
SOUNDEX(tab1.creative)= SOUNDEX(tab2.creative)
AND
tab1.id<>tab2.id
AND
tab1.id=(
SELECT
MAX(id)
FROM
creatives tab
WHERE
SOUNDEX(tab.creative)=SOUNDEX(tab1.creative))
結果を返すのに時間がかかりすぎることは別として、結果が少しあいまいすぎることがあります。たとえば、次のようなものを見つけられるのは素晴らしいことです。
Convenery of Trades of Edinburgh | Convenery of Trades of Edinbubrgh
Crowdedlogic Theatre Company | Crowded Logic Theatre Company
しかし、これらはかなりずれているようです:
Daniel Cope | Dan Willis & Obie
David Williams | David Holmes
これを行うためのより高速で曖昧でない方法はありますか?