任何人都可以使用 PHP 帮助我使用 MySQL 中的一些高级搜索功能吗?
我需要在特定字段(标题、描述)中执行搜索,并且一些特殊字符可以用作:
- 对于以给定文本开头的几个单词(例如,搜索词是 'north*',应该返回包含 Northern、Northern 等的条目)
- 排除单词(例如搜索词是 'vacation -bahamas',应该返回包含假期的条目,而不是那些也包含巴哈马的条目)
任何人都可以使用 PHP 帮助我使用 MySQL 中的一些高级搜索功能吗?
我需要在特定字段(标题、描述)中执行搜索,并且一些特殊字符可以用作:
您可能需要更专业的搜索技术。查看狮身人面像搜索。
许多开发人员将数据存储在 MySQL 中,然后使用像 Sphinx Search 这样的搜索引擎作为配套技术来索引数据并有效地搜索它。
为工作使用正确的工具。
我有点不清楚你在问什么。如果您想自己实现这一点以在 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 的答案。