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查询会导致结果与model无法对应,也就没有办法使用框架的一些便利的方法对结果集进行处理。尤其是laravel提供了非常多的对查询结果集进行处理的工具。所以最好是使用laravel提供的ORM进行多条件的数据库查询。
问题
比如需要执行这样一条sql语句
select
*
from
homework
where
(id between 1 and 10 or id between 50 a
如何从真正意义上做到延迟加载,即一次只从数据库中取我们需要的用到的那部分数据呢.通过研究,有了下面的方法: 首先,我们要新建一个静态类,用于存放多条件组合查询的各种组合,比如or,And这些等等.代码如下: 代码如下: using System.Linq.Expressions; public static class PredicateExtensionses { public static Expression> True() { return f => true; } pub