任何人都可以建议从字符串中找到单词吗?

时间:2013-07-19 11:02:48

标签: php mysql

我在大学的主要项目中使用PHP / MYSQL。这是我制作的搜索引擎。

我的数据库包含此句“who is the first president of america”的结果。

我的问题是,当用户输入没有空格的相同查询时(例如:“whoisthefirstpresidentofamerica”),我的搜索引擎无法从数据库中检索结果。

有没有找到不包含空格的字符串?

2 个答案:

答案 0 :(得分:2)

您可以通过删除两个字符串中的所有空格来进行比较:

select *
from t
where replace(t.col, ' ', '') = replace(@Val, ' ', '')

但是,我怀疑你想要使用MySQL的全文搜索功能。如果你正在处理句子,这是迄今为止更好的方法。您可以开始了解它们here

编辑:

如果您的目的是调查不同的排名算法,那么您需要了解文本搜索和分析。一个好的起点是关于全文搜索的MySQL文档。但是,它不允许您非常轻松地自定义排名方法。

特别是,您应该以“文档术语”格式存储文本。也就是说,将句子分成多行,句子中的每个术语一行,以及单词位置列。这将为您提供调查自己的排名算法所需的灵活性。

答案 1 :(得分:1)

使用LIKE关键字

select * from tablename where fieldname LIKE 'value%';