我是很新的SQL,并有一个关于匹配从位于表中两列名字的问题:

比方说,我想用同音()函数来匹配两个columsn。如果我使用以下查询:

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

一排如果该行内匹配两个名字返回。现在,我也想获得那些名字列1列2和不属于同一行之间的匹配。有没有一种方法来自动执行程序,即从每列1名与来自COLUMN2每一个名字?

感谢:)

P.S。:如果任何人都可以点我在一个n-gram中/双克匹配算法的方向,很容易为一个小白实现到MySQL那将是很好的为好。

有帮助吗?

解决方案

如果您的表中有一个关键,说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))

其他提示

可以加入表格本身上该关系这样:

SELECT * FROM tablename t1 JOIN tablename t2 
ON SOUNDEX(t1.column1) = SOUNDEX(t2.column2);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top