关于ASP搜索中词组用空格分开搜索的问题

 如题,就是在搜索的时候,两个词组之间用空格格开搜索,怎么样修改我下面的代码才能搜索得出来,是ASP+SQL的?附上自己的代码,请教达人:
<%
sub search
ypxxone_id=request("ypxxone_id")
ypxxtwo_id=request("ypxxtwo_id")
addone_id=request("addone_id")
addtwo_id=request("addtwo_id")
word=request("word")
if word="" then
response.redirect"../"
end if
key=request("key")
response.redirect"search_"&key&".asp?word="&escape(word)&"&key="&key&"&ypxxone_id="&ypxxone_id&"&ypxxtwo_id="&ypxxtwo_id&"&addone_id="&addone_id&"&addtwo_id="&addtwo_id&""
end sub

if userflag16=1 then
search
else
response.write SMT_user_flagerr
end if
%>

<%sql= "select * from SMT_yp where SMT_key<>0 and SMT_key<>2 and SMT_key<>4 and SMT_key1=1 and(SMT_coname like'%"&word&"%' or SMT_cojc like'%"&word&"%' or SMT_coms like'%"&word&"%') "&xxsort&addsort&" order by SMT_id desc"
set rs=server.createobject("adodb.recordset")
rs.open sql,conn,1,1
if rs.eof and rs.bof then
response.write "<tr><td height=50>没有找到能和“<font color=red>"&word&"</font>”匹配的内容,请尝试其它搜索。</td></tr>"
else
'分页的实现
listnum=10
Rs.pagesize=listnum
page=Request("page")
if (page-Rs.pagecount) > 0 then
page=Rs.pagecount
elseif page = "" or page < 1 then
page = 1
end if
Rs.absolutepage=page
'编号的实现
j=rs.recordcount
j=j-(page-1)*listnum
i=0
do while not rs.eof and i<listnum
goname=rs("SMT_user")
goid=rs("SMT_id")
'====================
SMT_coname=replace(rs("SMT_coname"),"<font color=red>"&word&"</font>")
aaa=trim(rs("SMT_coms"))
if instr(aaa,word) then
a=len(aaa)
b=instr(aaa,word)
if b<50 then c=left(aaa,b) else c="..."&mid(aaa,b-50,50)
if a-(b+len(word))<50 then d=right(aaa,a-(b+len(word))) else d=mid(aaa,b,50)&"..."
SMT_coms=c&d
else
SMT_coms=Trim(left(aaa,100))&"..."
end if
SMT_coms=replace(SMT_coms,"<font color=red>"&word&"</font>")
'====================
%>

能解决问题的话会追加得分!

问题补充:我上面的代码是只能词跟词连起来才能搜索得到,比如"北京故宫",但是象"北京 故宫",中间加个空格就搜不出来了.....
希望能按照我的代码修改好,本人对这个不是很懂,所以希望尽可能按照我的代码详细,谢谢先....
提问者: 3u88 - 兵卒 一级
最佳答案
例子
-----

key = split(keyword, " ") '将传递的关键字按 空格 分开成数组

'遍历数组, 给每个关键字建立一个 like 句子 用 or 连接

ssql = " 1 <> 1"
for ii = 0 to ubound(key)
if trim(key(ii)) <> "" then
ssql = " or ziduan like '%" & key(ii) & "%'"
end if
next

sql = sql & " AND (" & ssql & ")"
'这里记得用括号, 不然会出错的..

--------------------------------

一个大概的思路, 具体的你自己研究..
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值