在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')
除此之外,您可以使用 SOUNDEX
或 SOUNDS 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/