2

オペレーターの入力エラーが原因でレコードが重複した名前、会社、または製品のテーブルがあります。

この問題を管理するためのツールを作成しようとしています。トラフィックの多いページにはなりませんが、レコードセットを作成するときにデータベースを強制終了することはありません。次のクエリがありますが、処理に数分かかります (長すぎます)。

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

これを行うためのより高速で曖昧でない方法はありますか?

4

1 に答える 1