SQL中可以实现多个关键词匹配的搜索功能吗
比如说我想做一个图书搜索的功能,数据库总有一本“HTML,XHTML,CSS与JavaScript完全自学"的书,但是用户可能不会输入书的全名来查找,而是输入一些关键字,...
比如说我想做一个图书搜索的功能,数据库总有一本“HTML,XHTML,CSS与JavaScript完全自学"的书,但是用户可能不会输入书的全名来查找,而是输入一些关键字,比如说"HTML CSS”,所以我就想把用户输入的字符串用正则表达式拆分成独立的英文单词,然后一个个去数据库中与数名匹配,只有包含所有关键字的书才是符合要求的。但是因为用户输入的关键字的个数不是固定的,该如何进行模糊搜索呢
展开
展开全部
explode把用户输入的关键词拆分成数组,然后$str = implode("%' or like '%",array);
然后$sql = "select * from table where name like '%".$str."%'";
当然你explode之前要先处理返回的关键词字符串,去掉多余的空格和符号
然后$sql = "select * from table where name like '%".$str."%'";
当然你explode之前要先处理返回的关键词字符串,去掉多余的空格和符号
追问
这样可以吗,我试一下,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
景联文科技
2024-06-11 广告
2024-06-11 广告
一、什么是数据标注?1. 数据标注定义数据标注是对未经处理的语音、图片、文本、视频等数据进行加工处理, 并转换为机器可识别信息的过程。原始数据一般通过数据采集获得, 随后的数据标注相当于对数据进行加工, 然后输送到人工智能算法和模型里完成调...
点击进入详情页
本回答由景联文科技提供
2014-10-20
展开全部
vb.net的话可以用这句for each word as string in split(用户输入的字符串," ")
这句就能遍历空格隔开的每个词了,然后针对每个词用楼上几个说的select语句查询一下,把结果放在一起就是至少符合其中一个关键词的了。把结果取个交集的话就是符合所有关键词的。
你看看php有没有for each
这句就能遍历空格隔开的每个词了,然后针对每个词用楼上几个说的select语句查询一下,把结果放在一起就是至少符合其中一个关键词的了。把结果取个交集的话就是符合所有关键词的。
你看看php有没有for each
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from 表名 where 字段名 like '%CSS%'
包含“css”的并且是连续的 都会筛选出来
比如 HTML,XHTML,CSS与JavaScript完全自学,CSS与JavaScript不完全自学,XHTML与CSS自学成才,CSS从入门到精通,
都会筛选出来
但是 C/B与B/SS的区别这种不连贯的CSS是不会显示出来的!
包含“css”的并且是连续的 都会筛选出来
比如 HTML,XHTML,CSS与JavaScript完全自学,CSS与JavaScript不完全自学,XHTML与CSS自学成才,CSS从入门到精通,
都会筛选出来
但是 C/B与B/SS的区别这种不连贯的CSS是不会显示出来的!
更多追问追答
追问
我的意思是用户输入的关键字数是不确定的,可以是HTML,XHTML,CSS与JavaScript中的任意一个或者几个,而在进行筛选的时候是把输入的几个关键词都去匹配,只有包含所有用户输入关键词的项才是符合要求的
追答
那你就把用户输入的所有字儿,拆分成单个的字儿或者2个的字儿,然后用上面的方法把每个字儿都like一下,然后and连接上!
或者你要有一个非常完美的词库,匹配出来用户输入的所有字儿里面有几个词,就like几个词,不要想了,不可能那么完美的实现的!那是百度这种大搜索引擎或者淘宝等等公司才运用的,你也用不到那么精细!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
能,有sql语句 有个模糊查询
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select * from table where bookname like '%html%'
追问
我的意思是要适合用户随意输入时能搜索出相关的书名,比如说,输入“CSS”,就能搜出所有书名中包含“CSS“的书,输入HTML CSS“就能搜出所有书名包含”HTML“和”CSS”的书
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询