mysql - 在 mysql 查询中搜索概率

标签 mysql

在mysql中有什么方法可以像下面的条件那样搜索吗? 如果有请回复。

如果我使用“murray's”进行搜索,那么它将返回“murray's”的精细数据,但它也应该返回“murrays”的数据,意思是同一个词而不带撇号 (')。

同样,如果我不使用撇号 (') 进行搜索,它也会使用撇号 (') 进行搜索。

最后

如果搜索查询是“murray's”,它还会返回“murray's”和“murrays”。

如果搜索查询是“murrays”,它也会返回“murrays”和“murray's”。

提前致谢

最佳答案

最好的办法是创建一个 Full Text Index在你的 table 上。

然后您可以将其查询为:

select *
from restaurants
where match(name) against ('murrays')

除此之外,您可以使用 SOUNDEXSOUNDS LIKE在您的查询中。以下两个查询完全相同:

select *
from restaurants
where soundex(name) = soundex('murrays')

select *
from restaurants
where name sounds like 'murrays'

另请注意,MySQL 使用原始的 SOUNDEX 算法,而不是更新的算法。因此,它将返回任意长度的字符串。如果您以前使用过 SOUNDEX,请务必考虑到这一点。

关于mysql - 在 mysql 查询中搜索概率,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1181215/

相关文章:

mysql - Laravel 如何将多个复选框值保存到 SQL 数据库的不同行中?

php - 在 php 脚本中检查特定的 mysql 连接是否已经存在?

Mysql子查询长期工作

php - 查询性能的最佳实践是什么?

php - 成员(member)制

mysql - 如何在连接两个表时使用 "where"?

php - Google Chart - 如何使用 php 变量来更改数据源

mysql - 我可以确定或限制允许使用的内存查询量吗

php - 将复选框值存储在数据库中,无论是否在 Codeigniter 中选中

MySQL:如何检索符合间接条件的记录?