首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用MySQL查询长字符串中的多个关键字

问使用MySQL查询长字符串中的多个关键字
EN

Stack Overflow用户
提问于 2012-08-08 08:05:07
回答 5查看 4.6K关注 0票数 4

示例关键词搜索“洗车”

洗车必须出现在字符串中,无论位置如何。

可搜索的字符串可能很长,查询应该一起和单独地搜索这些关键字。可以有两个以上的关键字。

代码语言:javascript
复制
$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”的记录。

如果我使用“洗车”这两个词至少需要出现一次。关于如何修改我的搜索以考虑到这个条件,有什么建议吗?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-08-08 08:10:10

代码语言:javascript
复制
for($i = 0; $i < count($key); $i++){
        $query.=" AND (dealTitle rlike '[[:<:]]".$key[$i]."[[:>:]]' )";
}    

应该使用和

编辑:

代码语言:javascript
复制
for($i = 0; $i < count($key); $i++){
            $query.=" AND (dealTitle like '% ".$key[$i]." %' or dealTitle like '% ".$key[$i]."' or dealTitle like '".$key[$i]."%') ";
    }    
票数 1
EN

Stack Overflow用户

发布于 2012-08-08 08:13:12

如果您正在使用mysql数据库,则有一个完整的文本搜索功能,它将是健壮和可伸缩的解决方案。

代码语言:javascript
复制
$query .= " AND MATCH(dealTitle) AGAINST('". $searchString ."')";

匹配

查看本文,了解MySQL中的全文搜索功能。

票数 4
EN

Stack Overflow用户

发布于 2012-08-08 08:09:17

试试这个:

代码语言:javascript
复制
   AND (CONCAT(' ',dealTitle,' ') LIKE '% car %' and 
   CONCAT(' ',dealTitle,' ') LIKE '% wash %' )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11860250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档