0

我很难优化我目前正在从事的项目的搜索功能。

假设以下查询的搜索词是Green Apple

该短语有一些结果,有green一些结果,apple但没有,green apple因此,该短语返回一个空结果集。

我想知道是否有一种简单的方法可以基本上获取所有结果green和所有结果apple并将它们组合到一个结果集中,而无需重复代码。

$query = "SELECT * FROM files WHERE keywords LIKE '%".$searchText."%' ORDER BY website, description ASC";
$results = mysqli_query($mysqli, $query);

关键字字段示例

apple peach pear tomatoe

我很感激任何建议!

提前谢谢了!

4

2 回答 2

2

要跟进我的评论,您的查询将如下所示:

SELECT * FROM files WHERE 
MATCH(`keywords`) AGAINST('".$searchText."' IN BOOLEAN MODE) 
ORDER BY website, description ASC

请记住,MATCH AGAINST需要对正在搜索的列进行全文索引。在这种情况下,您将进入表的结构并在列files上放置一个全文索引。keywords在 phpmyadmin 中,它是一个单击按钮,与编辑、删除、唯一、主要等位于同一区域

于 2013-07-11T18:46:16.273 回答
0

这种事情怎么办:

$query = "SELECT * FROM files WHERE ('".$searchText."' LIKE concat('%',keywords,'%')) OR (keywords LIKE '%".$searchText."%') ORDER BY website, description ASC";
于 2013-07-11T18:40:14.950 回答