SQL中可以实现多个关键词匹配的搜索功能吗

比如说我想做一个图书搜索的功能,数据库总有一本“HTML,XHTML,CSS与JavaScript完全自学"的书,但是用户可能不会输入书的全名来查找,而是输入一些关键字,... 比如说我想做一个图书搜索的功能,数据库总有一本“HTML,XHTML,CSS与JavaScript完全自学"的书,但是用户可能不会输入书的全名来查找,而是输入一些关键字,比如说"HTML CSS”,所以我就想把用户输入的字符串用正则表达式拆分成独立的英文单词,然后一个个去数据库中与数名匹配,只有包含所有关键字的书才是符合要求的。但是因为用户输入的关键字的个数不是固定的,该如何进行模糊搜索呢 展开
 我来答
影翼视觉lyl
2014-10-24 · TA获得超过630个赞
知道小有建树答主
回答量:1279
采纳率:50%
帮助的人:675万
展开全部
这个可以的,不过前提是要知道你是怎么做这个搜索功能的。是一个表单可以搜索多个关键字还是说有多个表单(例如下拉菜单+文本框等)组合搜索。只有确定了这个后面才好接着做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
julongshan
推荐于2018-03-07 · TA获得超过110个赞
知道小有建树答主
回答量:248
采纳率:0%
帮助的人:236万
展开全部
可以的 LIKE 'HTML' and LIKE 'CSS'
追问
我的意思是要适合用户随意输入时能搜索出相关的书名,比如说,输入“CSS”,就能搜出所有书名中包含“CSS“的书,输入HTML CSS“就能搜出所有书名包含”HTML“和”CSS”的书,就是用户输入的关键词的个数是不确定的
追答

把用户的输入进行分词,可以使用pcws,或者进行简单的通过空格/,等其他符号把输入分解成多个关键词。组装sql的时候把词遍历一遍,重新组合like就行了。如:

$keywords = "html css";
$words = explode(" ",$keywords);
$like = "";
forearch ($words as $val){
    $like .= "and like '" .  $val . "'";
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式