2013-11-04 150 views
-3

任何人都可以帮助我在MySQL中使用PHP的一些高级搜索功能吗?Mysql高级搜索

我需要执行特定的字段(标题,描述)和一些特殊字符搜索可以作为:

  • 几个单词开始给定文本(例如搜索字词是“北*”,应该返回一个包含项北部,西北等)
  • 排除字词(如搜索词是“休假-bahamas”,应该返回包含vacation条目,但不是那些还含有巴哈马)
+0

有一些索引文本搜索系统[在这个老问题](http://stackoverflow.com/q/2271600/472495)比较。 – halfer

回答

0

我有点不清楚你在问什么。如果你想自己实现,以实现在PHP中的特定功能,在这里您需要的SQL知识:

SELECT * FROM table 
WHERE title LIKE '%north%' 

这个发现在标题中包含“北”的所有条目

SELECT * FROM table W 
HERE title LIKE 'north%' 

此找到所有其中冠军“北”开头的条目

SELECT * FROM table W 
WHERE (title LIKE 'north %' OR title LIKE '% north %' OR title LIKE '% north') 

这个发现在标题中包含字北

所有条目
SELECT * FROM table 
WHERE (description LIKE '% vacation %' OR description LIKE 'vacation %' OR description LIKE '% vacation') 
AND (description NOT LIKE '% bahamas %' AND description NOT LIKE 'bahamas %' AND description NOT LIKE '% bahamas') 

这个发现其中的描述包含单词“假期”,而不是单词“巴哈马”

但是,如果你需要一个更复杂的(即处理不区分大小写的查询),稳健的或有效的所有条目解决方案,请与比尔卡尔文的答案一起。

+0

感谢您提供有用的信息。我认为这些疑问将会完成这项工作。我会尝试他们。很高兴看到有些人愿意帮助,而不是其他一些只能给予-1的“天才”。 – Stoner

2

你可能需要一个更专业的搜索技术年。检查出Sphinx Search

许多开发人员将数据存储在MySQL中,然后使用搜索引擎(如Sphinx Search)作为配套技术来对数据进行索引并高效地进行搜索。

使用正确的工具进行工作。

+0

感谢您的输入。我会看看Sphinx Search。 – Stoner