我正在使用具有以下架构的产品表:
products (itemname VARCHAR(50), itemid INT(10));
示例记录如下所示(itemname
,itemid
):
现在假设用户将查询输入到网站的搜索框中,并显示相应的结果。即如果用户输入blackberry
,则应显示Blackberry手机
我正在寻找以下问题的答案:
blackberry
然后如何搜索?
我应该将blackberry
字词作为itemname
的子字符串进行搜索
上表中的一栏?apple 32gb
。现在,如果我使用
上面提到的子字符串方法然后它不会工作,因为表中没有apple 32gb
作为子字符串的行。在这种情况下如何搜索?mobiles
。在这种情况下,应显示所有手机。在这种情况下,匹配itemname
作为子字符串也不起作用。apple 32gb black color
。在这种情况下,应显示32GB容量和黑色的苹果产品。 我知道无法实现100%正确的搜索。我只是在寻找提示/如何进行。我正在使用PHP,MySQL,Apache。
答案 0 :(得分:1)
这是什么类型的数据库,如果MySQL你可以在该字段上启用全文搜索,然后只是一个简单的查询将获得你期望的结果。
答案 1 :(得分:1)
对于许多单词搜索我会做这样的事情:
$searchArray = explode(" ", $searchString);
foreach ($searchArray as $word)
{
//add an OR clause to your sql query like the following
$query .= "OR itemname like %".$word."%";
}
其他问题要复杂得多,但我希望这有帮助