示例关键词搜索“洗车”
洗车必须出现在字符串中,无论位置如何。
可搜索的字符串可能很长,查询应该一起和单独地搜索这些关键字。可以有两个以上的关键字。
$query="SELECT * FROM TABLE WHERE zip LIKE'abc'";
$key= explode(" ", $keywords);
for($i = 0; $i < count($key); $i++){
$query.=" AND (dealTitle LIKE '".$key[$i]." %' OR dealTitle LIKE '% ".$key[$i]." %' OR dealTitle LIKE '% ".$key[$i]." ')";
}但是,查询将返回那些包含"car“或 "wash”的记录。
如果我使用“洗车”这两个词至少需要出现一次。关于如何修改我的搜索以考虑到这个条件,有什么建议吗?
发布于 2012-08-08 08:10:10
for($i = 0; $i < count($key); $i++){
$query.=" AND (dealTitle rlike '[[:<:]]".$key[$i]."[[:>:]]' )";
} 应该使用和
编辑:
for($i = 0; $i < count($key); $i++){
$query.=" AND (dealTitle like '% ".$key[$i]." %' or dealTitle like '% ".$key[$i]."' or dealTitle like '".$key[$i]."%') ";
} 发布于 2012-08-08 08:13:12
如果您正在使用mysql数据库,则有一个完整的文本搜索功能,它将是健壮和可伸缩的解决方案。
$query .= " AND MATCH(dealTitle) AGAINST('". $searchString ."')";查看本文,了解MySQL中的全文搜索功能。
发布于 2012-08-08 08:09:17
试试这个:
AND (CONCAT(' ',dealTitle,' ') LIKE '% car %' and
CONCAT(' ',dealTitle,' ') LIKE '% wash %' )https://stackoverflow.com/questions/11860250
复制相似问题