SQL中可以实现多个关键词匹配的搜索功能吗
比如说我想做一个图书搜索的功能,数据库总有一本“HTML,XHTML,CSS与JavaScript完全自学"的书,但是用户可能不会输入书的全名来查找,而是输入一些关键字,...
比如说我想做一个图书搜索的功能,数据库总有一本“HTML,XHTML,CSS与JavaScript完全自学"的书,但是用户可能不会输入书的全名来查找,而是输入一些关键字,比如说"HTML CSS”,所以我就想把用户输入的字符串用正则表达式拆分成独立的英文单词,然后一个个去数据库中与数名匹配,只有包含所有关键字的书才是符合要求的。但是因为用户输入的关键字的个数不是固定的,该如何进行模糊搜索呢
展开
展开全部
这个可以的,不过前提是要知道你是怎么做这个搜索功能的。是一个表单可以搜索多个关键字还是说有多个表单(例如下拉菜单+文本框等)组合搜索。只有确定了这个后面才好接着做
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以的 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 . "'";
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询