题
我是很新的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);
不隶属于 StackOverflow