我必须将两个大数据表与客户的信息进行比较,只有兼容的是客户的地址。但是人们犯了错别字。是否有一个函数,我可以比较字符串与compability procent?就像table1.address 90%等于table2.address一样,它将返回true。
答案 0 :(得分:0)
您正在寻找的功能是字符串距离计算。据我所知,在MySQL中没有内置函数可以做到这一点(修复我)。
广泛使用的算法是Levenshtein distance
。此算法计算distance
(必须进行更改计数才能使2个字符串相同)。
您可以在Wikipedia
这是MySQL中的一个实现:http://openquery.com.au/blog/levenshtein-mysql-stored-function
如果您将distance
与length of the longest string
分开,则会获得Levenshtein distance ratio
。这就是你要找的东西。
在数据库中创建函数后,您可以将其用作WHERE
条件或ON
中JOIN
子句的一部分。
以下是Levenshtein distance ratio
实施的链接
http://falseisnotnull.wordpress.com/2013/05/18/levenshtein-and-levenshtein_ratio-functions-for-mysql/