2011-05-20 67 views
1

我有一个12个字符代码的InnoDB数据库表,经常需要由用户输入。 偶尔,用户会错误地输入代码(例如输入小写的L而不是1等)。 我想写一个查询,将找到类似的代码,他们已经进入,但使用LIKE'%code%'给了我太多的结果,其中许多只包含一个匹配的字符。MySQL查找类似的字符串

有没有办法进行更详细的检查?

编辑 - 不区分大小写。

任何意见赞赏。

谢谢。

+0

你是否想要区分大小写的检查? – diEcho 2011-05-20 10:18:00

+0

请看看我的答案,我不知道为什么它downvoted – diEcho 2011-05-20 10:27:44

回答

-1

看看soundex。常用拼错字符串具有相同的soundex代码,这样你就可以查询:

where soundex(Code) like soundex(UserInput) 
+0

这不是成功bcoz两个声音几乎相同的字符串应该有相同的soundex字符串。“标准soundex字符串是四个字符长,但SOUNDEX()函数返回一个任意长的字符串。您可以在结果上使用SUBSTRING()来获得标准的soundex字符串。 str中的所有非字母字符都将被忽略。在A-Z范围之外的所有国际字母字符被视为元音。' – diEcho 2011-05-20 10:19:51

-1

使用无通配符%

SELECT `code` FROM table where code LIKE 'user_input' 

THI WIL同时检查空间

SELECT 'a' = 'a ', return 1 whereas SELCET 'a' LIKE 'a ' return 0 

reference

+1

-1这只会找到“代码”,没有别的;问题是找到类似的字符串 – Andomar 2011-05-20 10:22:11

+0

@Andomar,用户想要检查用db中给定代码的用户输入,看看我的更新。 – diEcho 2011-05-20 10:25:40

+0

有人会给我doenvoted的理由吗? – diEcho 2011-05-20 10:26:11