日期:2014-05-17  浏览次数:20418 次

【请教一个关于复选框的模糊查询SQL语句怎么写】
我现在有这么一个需求,根据用户输入的字段模糊查询信息;
例如输入 商品名称 商品类型 ...这些都是一个输入框或下拉列表里选择,这些比较好说;
重点是有一项是类似下拉类别控件,里面可以进行复选 一共有7项,周一到周日; 可以选一个或多个;
而这个在数据库中是一个字段, 当初添加这个信息的时候 如果单选择周一的话 插入数据库的字段就是1,选择周二的话就是2,周三就是4,周四就是8... 如果选择了多个,例如选择了周一和周四 该字段就是1+8=9,
现在插入了2条数据 ,一条是周一的信息 ,一条是周一和周四的信息,
但如果选择查询周一的话 ,查询出来的只有一条信息, 而周一和周四那条信息就显示不出来了;因为选择周一就相当于该字段的查询条件是1, 而有周一和周四的那条信息该字段是9;
不知道各位牛牛有啥查询方法可以查处理,谢谢【急啊】

------解决方案--------------------
charindex(isnull(@a,''),col1)>0 and charindex(isnull(@b,''),col2)>0 and .....
--try
------解决方案--------------------
在程序端做查询的逻辑判断吧!不要在SQL里搞了。

if(...){
sqlstr = sqlstr + ' and ... '
}
------解决方案--------------------
呵呵,程序端写个函数或类来解析选中的日期。解析成 date = 1 or date = 2 or date = 4.然后传到SQL SERVER拼接动态SQL。注意SQL注入的危险。