关于多重条件的搜索查询(sql server+c#)

昨天碰到一个多条件查询的问题,一共是10几个条件多重查询,关键问题是,他是用户在页面上选择或者填写搜索条件,所以存在有的条件为空值的情况,注意哦这边的空值不是Null哦而是一个空string值,因为限制条件太多了,无法进行一一的进行if的比较,后来我想到了一个比较变态的方法,其实很多刚接触到网络的人应该知道‘注入’这个词,最简单的就是在登录的地方骗取登录,让name=name恒为真这样的方法,根据这个我想到了一个简单的多重条件搜索查询的方法,举个例子来说明吧:文章表artcle内有标题title,内容content,作者man,所属部门(depart),登记时间(djtime)等等,在页面上提供给用户进行查询操作的是标题文本框@title,作者文本框@man,距离现在的时间文本框@zjsj,所属部门的下拉框(默认是value="-1" text="请选择")获取value值@depart,因为客户并不会把所有的都填满然后进行查询,或许他也只知道其中的某几个条件,所以进行搜索的操作提交的时候获取到的并不全,我们按照提交的内容做了如下的处理:
1select * from article 
2where
3(title like '%@title%' or @title=''
4and 
5(man=@man or @man='')
6and
7(datediff(day,djtime,getdate())<@zjsj or @zjsj!=0
8and
9(depart=@depart or @depart='')
解释一下模糊查询标题,对应作者,距离@zjsj以内的所有文章,还有对应部门,每一个都可以缺省,比一个一个得去判断简单多了,
还有一个就是有可能是null值的,那我们就用 is null来判断就可以了,原理都是一样的!
共勉!

posted on 2008-03-31 15:27  毛毛亟亟  阅读(1285)  评论(9编辑  收藏  举报

导航