当前位置: 首页 > 知识库问答 >
问题:

在MySQL数据库中搜索相似的字符

万阳嘉
2023-03-14

我正在寻找创建一个数据库搜索(MySQL),使用PHP来查找电气部件的零件号,但希望搜索也能找到类似的字符

例如,搜索6SE7O90也应搜索6SE7090,搜索4I737A也应搜索4L737A,因为在某些零件标签上打印的0/O和I/L可能看起来相似。

在PHP/MySQL中实现这一点的最佳方法是什么?

共有1个答案

吴哲
2023-03-14

您将需要定义一个类似Soundex的函数,该函数将值简化为“正常形式”。那么,搜索就容易了。

例如,如果您认为O0是相同的,并且1也是相同的,则可以将它们全部规范化为数字,如:

select *
from (
  select
    *,
    replace(replace(value, 'o', '0'), '|', '1') as normal_form
  from t
) x
where normal_form = replace(replace('6se7o90', 'o', '0'), '|', '1')

注意#1:为了简单明了,值的规范化规则可以外部化到一个函数中。

注意2:对于高性能搜索,您可以创建一个带有规范化值的索引虚拟列。

 类似资料:
  • 本文向大家介绍在MySQL数据库中快速搜索字符串?,包括了在MySQL数据库中快速搜索字符串?的使用技巧和注意事项,需要的朋友参考一下 使用FULLTEXT搜索来快速搜索字符串。让我们首先创建一个表- 这是创建全文本搜索的查询- 使用插入命令在表中插入一些记录- 使用select语句显示表中的所有记录- 这将产生以下输出- 以下是在MySQL数据库中快速搜索字符串的查询。在这里,我们正在搜索字符串

  • 问题内容: 因此,我有一个名为“ users。”的表的数据库。在该表中有一列名为“ IP”的列,我想查找具有相同IP的用户并将其禁止。 问题答案: 您应该利用查询分组。我写的一个老博客是《理解群居法》 但基本上这应该工作: 这将返回计数> 1的所有IP地址

  • 问题内容: 我想从MySQL数据库的所有表的所有字段中搜索给定的字符串,可能使用如下语法: 有可能做这样的事情吗? 问题答案: 您可以浏览模式。它具有所有表和表中所有字段的列表。然后,您可以使用从该表获得的信息来运行查询。 涉及的表是SCHEMATA,TABLES和COLUMNS。有一些外键,使您可以准确地建立在模式中创建表的方式。

  • 我通过在JTextField中获取用户的输入创建了一个JList。然后,我将jList转换为String,将jList保存到Mysql数据库,因为我希望将jList项保存在单行中作为单个条目。 向JList添加用户输入的代码: 但是在使用此代码时,Jtable并不显示任何值,尽管它使用表头名称。请任何人可以检查我正确在如何搜索中保存在MySQL数据库的字符串。我认为问题是存在的,因为其他事情都很好

  • 问题内容: 这个问题已经在这里有了答案 : 从MySQL数据库的每个表中搜索所有字段 (22个答案) 3年前关闭。 我试图弄清楚如何在数据库中查找所有出现的url。我想搜索所有表和所有字段。但是我不知道从哪里开始,或者甚至可能。 问题答案: 一个简单的解决方案是做这样的事情:

  • 问题内容: 假设我们有一个类似的数据库: Actions_tbl: Users_tbl: 想知道是否可以选择重复性最高的类似操作,而不管其用户是什么,然后用其当前用户替换我自己的user_name! 读一本书,读一本书,读另一本书,读图书馆中的书,读一本书和读一本书是最常见的单词,因此与阅读本书有关的工作人员重复了6次,我的系统应该显示随机选择这六个句子之一,并用user_name替换Araz 像