我在大学的主要项目中使用PHP / MYSQL。这是我制作的搜索引擎。
我的数据库包含此句“who is the first president of america
”的结果。
我的问题是,当用户输入没有空格的相同查询时(例如:“whoisthefirstpresidentofamerica
”),我的搜索引擎无法从数据库中检索结果。
有没有找到不包含空格的字符串?
答案 0 :(得分:2)
您可以通过删除两个字符串中的所有空格来进行比较:
select *
from t
where replace(t.col, ' ', '') = replace(@Val, ' ', '')
但是,我怀疑你想要使用MySQL的全文搜索功能。如果你正在处理句子,这是迄今为止更好的方法。您可以开始了解它们here。
编辑:
如果您的目的是调查不同的排名算法,那么您需要了解文本搜索和分析。一个好的起点是关于全文搜索的MySQL文档。但是,它不允许您非常轻松地自定义排名方法。
特别是,您应该以“文档术语”格式存储文本。也就是说,将句子分成多行,句子中的每个术语一行,以及单词位置列。这将为您提供调查自己的排名算法所需的灵活性。
答案 1 :(得分:1)
使用LIKE
关键字
select * from tablename where fieldname LIKE 'value%';