ASP模糊搜索排序问题
搜索小说排序如下:小说小说网站小米说说这样子排求教大神如何排序.目前写的是用多个orlike模糊查询怎么排序不知道,麻烦给出SQL语句...
搜索 小说 排序如下 :
小说
小说网站
小米
说说
这样子排 求教大神如何排序.
目前写的是用多个 or like 模糊查询
怎么排序不知道,麻烦给出 SQL语句 展开
小说
小说网站
小米
说说
这样子排 求教大神如何排序.
目前写的是用多个 or like 模糊查询
怎么排序不知道,麻烦给出 SQL语句 展开
4个回答
展开全部
<%
dim key
key="国美"
set rs1=server.CreateObject("adodb.recordset")
rs1.open "select * from news where htitle like '%"&key&"%' or title like '%"&key&"%' order by id desc",cn,1,1
%>
结果是关键字字段中有的全部出现 如果关键字过长
例如: <%
dim key
key="国美苏宁永乐"
set rs1=server.CreateObject("adodb.recordset")
rs1.open "select * from news where htitle like '%"&key&"%' or title like '%"&key&"%' order by id desc",cn,1,1
%>
dim key
key="国美"
set rs1=server.CreateObject("adodb.recordset")
rs1.open "select * from news where htitle like '%"&key&"%' or title like '%"&key&"%' order by id desc",cn,1,1
%>
结果是关键字字段中有的全部出现 如果关键字过长
例如: <%
dim key
key="国美苏宁永乐"
set rs1=server.CreateObject("adodb.recordset")
rs1.open "select * from news where htitle like '%"&key&"%' or title like '%"&key&"%' order by id desc",cn,1,1
%>
展开全部
楼主可以参考以下代码
<%
Dim i,KeyWord,NotKeyWord
KeyWord = Request("FormKey")
if isNull(KeyWord) then
Response.write "请输入关键字"
Response.End
end if
KeyWord = Trim(KeyWord)
if KeyWord= "" then
Response.write "请输入关键字"
Response.End
end if
if Len(KeyWord)>10 then
Response.write "关键字不能超过十个字"
Response.End
end if
'先显示完整匹配,再单字匹配,至于要匹配词组的话,你需要建词组数据表了
set rs=server.CreateObject("adodb.recordset")
sql = "select Title from Article where Title like '%"&key&"%' order by Title desc"
rs.open sql,conn,1,1
do while not rs.eof
'显示部分省略
loop
sql = ""
NotKeyWord = " !@#$%^&*()-+|"
for i = 1 to Len(KeyWord)
if Mid(KeyWord,i,1) <> "" And Instr(NotKeyWord,Mid(KeyWord,i,1))<1 then
sql = sql & " or Title like '%"&Mid(KeyWord,i,1) &"%' "
end if
end for
sql = "select Title from Article where 1=1 " & sql & " order by Title desc"
rs.open sql,conn,1,1
do while not rs.eof
'显示部分省略
loop
rs.close
Set rs = Nothing
conn.close
Set conn = Nothing
%>
<%
Dim i,KeyWord,NotKeyWord
KeyWord = Request("FormKey")
if isNull(KeyWord) then
Response.write "请输入关键字"
Response.End
end if
KeyWord = Trim(KeyWord)
if KeyWord= "" then
Response.write "请输入关键字"
Response.End
end if
if Len(KeyWord)>10 then
Response.write "关键字不能超过十个字"
Response.End
end if
'先显示完整匹配,再单字匹配,至于要匹配词组的话,你需要建词组数据表了
set rs=server.CreateObject("adodb.recordset")
sql = "select Title from Article where Title like '%"&key&"%' order by Title desc"
rs.open sql,conn,1,1
do while not rs.eof
'显示部分省略
loop
sql = ""
NotKeyWord = " !@#$%^&*()-+|"
for i = 1 to Len(KeyWord)
if Mid(KeyWord,i,1) <> "" And Instr(NotKeyWord,Mid(KeyWord,i,1))<1 then
sql = sql & " or Title like '%"&Mid(KeyWord,i,1) &"%' "
end if
end for
sql = "select Title from Article where 1=1 " & sql & " order by Title desc"
rs.open sql,conn,1,1
do while not rs.eof
'显示部分省略
loop
rs.close
Set rs = Nothing
conn.close
Set conn = Nothing
%>
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
<%
dim key
key="国美"
set rs1=server.CreateObject("adodb.recordset")
rs1.open "select * from news where htitle like '%"&key&"%' or title like '%"&left(key,2)&"%' or title like '%"&right(key,2)&"%' order by id desc",cn,1,1
%>
或者用split 先拆分 在模糊like
dim key
key="国美"
set rs1=server.CreateObject("adodb.recordset")
rs1.open "select * from news where htitle like '%"&key&"%' or title like '%"&left(key,2)&"%' or title like '%"&right(key,2)&"%' order by id desc",cn,1,1
%>
或者用split 先拆分 在模糊like
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只能将搜索字符 拆分开 先搜小 在搜说 然后再汇总排序就可以了,建议用储存过程解决
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询