在Mysql表中修改字符串搜索

时间:2011-08-22 17:30:59

标签: php mysql string pattern-matching

我有一个要搜索的字符串查询(假设“这是我的第一个查询”作为示例)。

我还有一个由(id,title,rating,...)属性组成的表。

我想要的是找出我的字符串查询的搜索结果,该搜索结果与“title”属性(可能或两者都匹配)匹配。

但是,如果完整的文字,即“这是我的第一个查询”不存在,那么如果我喜欢那就没有结果

SELECT * FROM test WHERE title LIKE '%$query%';

我接下来要考虑的是这次用较小的字符发出另一个查询...即我将使用搜索字符串“这是我的第一个查询”(y被截断)来触发相同的查询,依此类推,直到我得到我希望没有。结果。

但我的问题是:

  1. 这是非常昂贵的操作
  2. 我希望搜索数据按照评级下降的顺序排序(“测试”表中的另一个字段)
  3. 请帮助我如何处理此事?

1 个答案:

答案 0 :(得分:1)

  1. 在此字段上添加索引并在循环中运行查询。我不喜欢它。
  2. 在mysql中使用全文搜索http://dev.mysql.com/doc/refman/5.1/en/fulltext-search.htm
  3. 使用Sphinx http://sphinxsearch.com/
  4. 等独立搜索服务器