SQL 多条件查询
以后我们做多条件查询,一种是排列结合,另一种是动态拼接SQL
如:我们要有两个条件,一个日期addDate,一个是name
第一种写法是
if (addDate is not null) and (name '')
select * from table where addDate = addDate and name = name
else if (addDate is not null) and (name ='')
select * from table wh
我们在进行项目开发中,经常会遇到多条件模糊查询的需求。对此,我们常见的解决方案有两种:一是在程序端拼接SQL字符串,根据是否选择了某个条件,构造相应的SQL字符串;二是在数据库的存储过程中使用动态的SQL语句。其本质也是拼接SQL字符串,不过是从程序端转移到数据库端而已。
这两种方式的缺点是显而易见的:一是当多个条件每个都可为空时,要使用多个if语句进行判断;二是拼接的SQL语句容易产生SQL注入漏洞。
最近写数据库存储过程的时候经常使用case when 语句,正好可以用这个语句解决一下以
using MongoDB.Bson;
using MongoDB.Driver;
按指定用户名,指定日期查询数据
string username=lee;//定义用户名
string[] Dates = new string[] { 2020-03-05, 2020-03-02,2020-03-06};//定义时间段,数量不限
List filterlist = new List();//Message是数据实体
foreach (string date in Dates)
{
fi