0

SQLite データベースに、列の 1 つが単なるフリー テキストであるテーブルがあります。また、指定された 2 つの文字列のレーベンシュタイン距離を計算するカスタム関数を定義しています。基本的には、整数値 (両方の文字列間の距離) を返す単なる比較関数です。

私の目標は、それらの間の特定の値 D よりも低い距離を共有するそのテーブルからすべての行を取得することです。

これはクエリを使用して可能ですか? GROUP BY が答えになると思いましたが、共有できるほどまともな結果は得られていません。

提供されたヘルプに事前に感謝します。

4

1 に答える 1

1

テーブルをそれ自体と結合する必要があります。

SELECT *
FROM MyTable T1 JOIN
     MyTable T2 ON T1.ID < T2.ID AND
                   LDist(T1.TextColumn, T2.TextColumn) < 42

(ID比較により、同じペアに対して 2 つの結果レコードが返されなくなります。)

于 2013-03-11T08:05:34.437 に答える