注册 登录
编程论坛 ASP.NET技术论坛

实现高级查询

liuran 发布于 2010-03-26 09:06, 1340 次点击
有没有一个好的方法实现高级搜索,也就是有多个条件可选择,如果选择其中两个,就按着两个条件查,如果有几个个按几个查!
以前都是写多个IF语句进行判断,但太麻烦,请问有没有更好的方法啊??
10 回复
#2
yms1232010-03-26 09:09
以前用ASP写过一个多条件搜索,可以选择很多条件一起搜索,不知道楼主想要实现的多条件具体是什么样子的?
#3
liuran2010-03-26 09:13
也就是在Sql语句中如果用and 连接的话 有不选的项那就查不到啦,如果用or的话那就不精确啦!
#4
yms1232010-03-26 09:16
可以让用户自己选择,或者模仿百度或google做搜索宏命令,搜索时对输入的宏命令进行解析。
#5
liuran2010-03-26 09:19
让用户自己选的话还用一一判断,如条件多的话就更麻烦了!宏命令我不了解
#6
yms1232010-03-26 11:07
比如在搜索时输入
abc&def
在换成SQL语句后就变成
select * from table where title like '%abc%' and title like '%def%'
同理
abc|def
select * from table where title like '%abc%' or title like '%def%'
这样的宏命令搜索方式。
#7
aspic2010-03-26 11:13
拼sql
#8
misswang2010-03-28 17:06
条件多用Swich  Case 来拼Sql
#9
恋雪怜冰2010-03-29 15:03
不知道这个存储过程对你有没有用  不过可以根据多个条件查询,写sql时可以在sql中调用存储过程
create proc proc_selectFromWhere
@strWhere varchar(500)
as
declare @strSql varchar(1000)
set @strSql=
'select * from product'+@strWhere
exec(@strSql)
go

exec proc_selectFromWhere @strWhere=''--当下拉框为所有时
exec proc_selectFromWhere @strWhere=' where title like ''%结%'''--当下拉框根据标题时
exec proc_selectFromWhere @strWhere=' where product like ''%一%'''--当下拉框根据产品时
--用两个单引号,因为存储过程的字符串识别必须是两个单引号
#10
_admin2010-04-02 08:56
用存储过程
like 查询 遇到些特殊符号比如‘ % 就会报错
建议使用 charindex 串接
#11
aspnetphp2010-04-09 09:52
就还把sql条件语句,组合起来!主意中文的字体是需要逃逸的。
1