我有不同的用户名,由不同的最终用户手动输入。输入用户名时没有验证机制,因此可能存在拼写错误。例如用户可以 输入Tina,Teena获取相同的用户名。当我输入Tina时我需要返回Tina,反之亦然。
精心
SELECT * FROM tbl where where username='tina'
应该返回Tina,Teena等等
答案 0 :(得分:2)
您可以调查T-SQL中的SOUNDEX
函数。例如,它会将Teena与Tina相匹配(反之亦然)。
请参阅http://technet.microsoft.com/en-us/library/ms187384.aspx
正如函数名称所示,它匹配听起来相同的单词。所以,尽管Tina与Teena相匹配,但Tina与新浪并不匹配(因为他们的声音不一样)。
答案 1 :(得分:1)
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') + '%'
答案 2 :(得分:1)
您可以参考soundex或diffrence
Select Soundex('Teena'),Soundex('Tina')
soundex返回T500
两者,因此两者都是相似的单词
Select Difference('Teena','Tina')
返回4,差异更多是相似性