【问题标题】:matching similar text in sql server在sql server中匹配相似的文本
【发布时间】:2013-11-28 10:21:16
【问题描述】:
我有不同最终用户手动输入的用户名。输入用户名时没有验证机制,因此可能存在拼写错误。例如用户可以
输入 Tina,Teena 以获取相同的用户名。当我输入 Tina 时,我需要返回 Tina,反之亦然。
精心设计
SELECT * FROM tbl where where username='tina'
应该返回 Tina、Teena 等
【问题讨论】:
标签:
sql
sql-server
pattern-matching
【解决方案2】:
您可以参考 soundex 或 diffrence
Select Soundex('Teena'),Soundex('Tina')
soundex 为两者返回 T500,所以它们是相似的词
Select Difference('Teena','Tina')
返回4,越差越相似
【解决方案3】:
SELECT name
FROM (SELECT 'tina' AS name
UNION ALL
SELECT 'teena' AS name
UNION ALL
SELECT 'tena' AS name)tmp
WHERE Soundex(name) LIKE '%' + Soundex('tina') + '%'