我正在网站上的"高级搜索"页面上输入关键字,例如"我喜欢苹果",它可以使用以下选项搜索数据库:
查找:使用所有单词,使用确切的短语,至少有一个单词,没有单词
我可以通过以下方式处理'确切短语':
SELECT * FROM myTable WHERE field='$keyword';
'至少有一个'by:
SELECT * FROM myTable WHERE field LIKE '%$keyword%';//Let me know if this is the wrong approach
但它的'至少有一个词'和'没有词',我坚持.
关于如何实现这两个的任何建议?
编辑:关于'至少一个单词',使用explode()将关键字分解为单词并运行循环来添加不是一个好方法
(field='$keywords') OR ($field='$keywords) (OR)....
因为查询中还有一些其他的AND/OR子句,我不知道可以有的最大子句数.
我建议使用MySQL FullText Search和布尔全文搜索功能,你应该能够得到你想要的结果.
编辑:
请求的示例基于您请求的条件("它只是一个字段,他们可以选择4个选项中的任何一个(即1个单词,确切的单词,至少1个单词,没有该术语).")
我假设您正在使用基于您的初始帖子的PHP
希望这有助于在布尔匹配中充分使用运算符,请参阅布尔全文搜索