MySQL 查找相似字符串

发布于 2024-11-09 04:19:29 字数 229 浏览 0 评论 0原文

我有一个包含 12 个字符代码的 InnoDB 数据库表,通常需要用户输入。 有时,用户会错误地输入代码(例如输入小写 L 而不是 1 等)。 我正在尝试编写一个查询,该查询将找到与他们输入的代码相似的代码,但使用 LIKE '%code%' 会给出太多结果,其中许多结果仅包含一个匹配字符。

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

编辑 - 不需要区分大小写。

任何建议表示赞赏。

谢谢。

I have an InnoDB database table of 12 character codes which often need to be entered by a user.
Occasionally, a user will enter the code incorrectly (for example typing a lower case L instead of a 1 etc).
I'm trying to write a query that will find similar codes to the one they have entered but using LIKE '%code%' gives me way too many results, many of which contain only one matching character.

Is there a way to perform a more detailed check?

Edit - Case sensitive not required.

Any advice appreciated.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

肩上的翅膀 2024-11-16 04:19:29

Have a look at soundex. Commonly misspelled strings have the same soundex code, so you can query for:

where soundex(Code) like soundex(UserInput)
陈年往事 2024-11-16 04:19:29

使用不带通配符的 % ,这样

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

还会检查空格

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

参考

use without wildcard % for that

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

thi wil also check the space

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

reference

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文