【问题标题】:Mysql search results for similar soundsMysql搜索类似声音的结果
【发布时间】:2014-08-06 15:59:30
【问题描述】:

假设我有一个用户表。用户名的表存储列之一。 还假设表中有行。用户名如下: '苏曼','苏门','帕皮亚'。 现在我想要一个 mysql 查询,如果用户使用“Suman”按用户名从表中搜索,那么结果将显示两行,一行用于“Suman”,另一行用于“Sumon”。

【问题讨论】:

  • 在 MySQL 中寻找 SoundEx
  • 全文不适用于“错别字”。搜索“suman”将返回“suman”。它不会返回“召唤”
  • 您是否尝试按名称添加订单?因为当 firstname like '%sum%' 时,它会通过加法对输出数据进行排序。所以你必须按名字添加顺序才能在 Suman 之后得到 Sumon
  • Levenshtein distance怎么样?

标签: php mysql


【解决方案1】:

您可以使用soundex,它会比较名字中值的发音是否与提供的单词的发音匹配

根据文档

使用 SOUNDEX() 时,应注意以下事项 限制:

  • 当前实现的此函数旨在与仅使用英语的字符串很好地配合使用。其他字符串
    语言可能不会产生可靠的结果。

  • 不保证此函数与使用多字节字符集的字符串(包括 utf-8)提供一致的结果。

select *
from t
where soundex(firstname)=soundex('Suman')

Demo

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多