Соответствие двум столбцам в MySQL - PullRequest
3 голосов
/ 07 февраля 2010

Я довольно новичок в SQL и у меня есть вопрос о сопоставлении имен из двух столбцов, расположенных в таблице:

Допустим, я хочу использовать функцию soundex () для сопоставления двух столбцов. Если я использую этот запрос:

SELECT * FROM tablename WHERE SOUNDEX(column1)=SOUNDEX(column2);

строка возвращается, если два имени в этой строке совпадают. Теперь я также хотел бы получить те совпадения имен между column1 и column2, которые не находятся в одной строке. Есть ли способ автоматизировать процедуру, при которой каждое имя из column1 сравнивается с каждым именем из column2?

Спасибо:)

p.s .: Если бы кто-нибудь мог указать мне в направлении алгоритма сопоставления n-грамм / биграмм, который новичку легко внедрить в mysql, это было бы также хорошо.

Ответы [ 2 ]

6 голосов
/ 07 февраля 2010

Если на вашем столе есть ключ, скажем, id, вы можете попробовать:

select A.column1, B.column2 
from tablename as A, tablename as B 
where (A.id != B.id) and (SOUNDEX(A.column1) = SOUNDEX(B.column2))
0 голосов
/ 07 февраля 2010

Вы можете присоединить таблицу к себе на этом отношении как:

SELECT * FROM tablename t1 JOIN tablename t2 
ON SOUNDEX(t1.column1) = SOUNDEX(t2.column2);
...