-3

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

我需要在特定字段(标题、描述)中执行搜索,并且一些特殊字符可以用作:

  • 对于以给定文本开头的几个单词(例如,搜索词是 'north*',应该返回包含 Northern、Northern 等的条目)
  • 排除单词(例如搜索词是 'vacation -bahamas',应该返回包含假期的条目,而不是那些也包含巴哈马的条目)
4

2 回答 2

2

您可能需要更专业的搜索技术。查看狮身人面像搜索

许多开发人员将数据存储在 MySQL 中,然后使用像 Sphinx Search 这样的搜索引擎作为配套技术来索引数据并有效地搜索它。

为工作使用正确的工具。

于 2013-11-04T18:37:45.877 回答
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')

这将查找标题包含单词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')

这将查找描述包含单词“假期”而不是单词“巴哈马”的所有条目

但是,如果您需要更复杂(处理不区分大小写的查询)、健壮或高效的解决方案,请选择 Bill Karwin 的答案。

于 2013-11-04T19:51:25.953 回答