SqlSugar基础查询
查所有
List<Student> list=db.Queryable<Student>().ToList()//select * from Student |
查询总数
int count=db.Queryable<Student>().Count()//select count(1) from Student |
按条件查询
db.Queryable<Student>().Where(it=>it.Id==1).ToList()//select * from Student where id=1db.Queryable<Student>().Where(it=>it.name !=null).ToList()//不是null//select * from Student where name is not nulldb.Queryable<Student>().Where(it=>it.name ==null).ToList()//是null//select * from Student where name is nulldb.Queryable<Student>().Where(it=>it.name !="").ToList()//不是空 ,不为空//select * from Student where name <> '' |
多条件查询
db.Queryable<Student>().Where(it=>it.Id>10&&it.Name=="a").ToList()//select * from Student where id>10 and name='a'db.Queryable<Student>().Where(it=>it.Id>10).Where(it=>it.Name=="a").ToList()//select * from Student where id>10 and name='a'//如果是或者关系可以用 || |
动态OR查询
var exp= Expressionable.Create<Student>();exp.OrIF(条件,it=>it.Id==1);//.OrIf 是条件成立才会拼接ORexp.Or(it =>it.Name.Contains("jack"));//拼接ORvar list=db.Queryable<Student>().Where(exp.ToExpression()).ToList(); |
模糊查询
db.Queryable<Student>().Where(it =>it.Name.Contains("jack")).ToList();//select * from Student where name like %jack% |
根据主键查询
susgar中的single等同于EF中的SingleOrDefault
/*单主键查询*/db.Queryable<Student>().InSingle(2) //通过主键查询 SingleByIddb.Queryable<Student>().Single(it=>it.Id==2) //根据ID查询//select * from Student where id=2/*多主键查询*/var getAll=db.Queryable<Order>().WhereClassByPrimaryKey(new Order(){Pk1=1,Pk2=xx}).ToList(); //单个实体 vargetAll=db.Queryable<Order>().WhereClassByPrimaryKey(List<Order>).ToList(); //支持集合 |
查询第一条 ,第一行
.First() 等同于C#中的 FirstOrDefault , 没有值返回 null
db.Queryable<Student>().First(it=>it.Id==1) //没有返回Null//select top 1 * from Student where id=1 |
查询最后一条
First() 等同于C#中的 FirstOrDefault , 没有值返回 null
db.Queryable<Student>().OrderBy(it=>it.Id,OrderByType.Desc )// 倒序.First(it=>it.Id>10) //没有返回Null//select top 1 * from Student order by id desc where id>10 |
查前几条
db.Queryable<Student>().Take(10).ToList()//select top 10 * from Student |
数据行数
db.Queryable<Student>().Where(it=>it.Id>11).Count()//同步db.Queryable<Student>().Where(it=>it.Id>11).CountAsync()//异步//select count(*) from Student where id>11//你也可以用函数SqlFunc.AggregateCount |
设置新表名
//例1:更新表名db.Queryable<School>().AS("Student").ToList();//生成的SQL SELECT [ID],[NAME] FROM Student//动态表名 表别名 指定表明//例2:给表名添加前缀db.Queryable<School>().AS("dbo.School").ToList();//生成的SQL SELECT [ID],[NAME] FROM dbo.School//如果不用AS也可以在特性中设置别名,看文档:实体本置 |
是否存在记录
is exists
db.Queryable<Student>().Where(it=>it.Id>11).Any()db.Queryable<Student>().Any(it=>it.Id>11) //上面语法的简化//异步就是 AnyAsync() |
In查询(单个字段)
单个字段
int [] allIds =new int[]{2,3,31};db.Queryable<OrderItem>().Where(it => allIds.Contains(it.OrderId)).ToList()//orderid in (2,3,31)//字符串类型 varchar和nvarchar (默认varchar来保证性能) NameList.Contains(it.Name,true) //true和false来控制是varchar还是nvarchar |
In查询(多个字段)
多个字段 (升级:5.1.4.67-preview04)
List<OrderItem> list=xxx; db.Queryable<OrderItem>().Where(it => list.Any(s => s.Id == it.Id && s.Name == it.Name)) //也可以用动态表达式拼OR实现 |
In模糊查询
对象集合In like 升级:5.1.4.67
List<OrderItem> list=xxx; db.Queryable<OrderItem>().Where(it => list.Any(s => it.Name.Contanins(s.Name))) //也可以用动态表达式拼OR实现 |
数组集全 in like :5.1.4.85
List<string> list=xxx; db.Queryable<OrderItem>().Where(it => list.Any(s => it.Name.Contanins(s))) //也可以用动态表达式拼OR实现 |
Not In
int [] allIds =new int[]{2,3,31};db.Queryable<OrderItem>().Where(it => !allIds.Contains(it.OrderId)).ToList()//orderid NOT in (2,3,31) |
简单排序
db.Queryable<Student>().OrderBy((st,sc)=>sc.Id,OrderByType.Desc).ToList()//排序 可以多个//更多用法https://www.donet5.com/Home/Doc?typeId=2312 |
查询一列
db.Queryable<Student>().Select(it=>it.Name).ToList() //单值 查询列 查询单独列 |
查询单条
查询一条
db.Queryable<Student>().Single(it=>it.Id==1) //没有返回Null,如果结果大于1条会抛出错误//select * from Student where id=1 // 查询id等于1的单条记录 |
获取最大值
db.Queryable<Order>().Max(it=>it.Id);//同步 db.Queryable<Order>().MaxAsync(it=>it.Id);//异步//也可以用函数 SqlFunc.AggregateMax |
获取最小值
db.Queryable<Order>().Min(it=>it.Id);//同步db.Queryable<Order>().MinAsync(it=>it.Id);//异步//也可以用函数 SqlFunc.AggregateMin |
求和
db.Queryable<Order>().Sum(it=>it.Id);//同步db.Queryable<Order>().SumAsync(it=>it.Id);//异步//也可以用函数 SqlFunc.AggregateSum |
查询过滤排除某一个字段
生成的sql Select 不会有Files
/***单表***/db.Queryable<Order>().IgnoreColumns(it=>it.Files).ToList();//只支持单表查询 /***联查***///是主表var leftQuery=db.Queryable<Order>().IgnoreColumns(it=>it.Files);var list=db.Queryable(leftQuery).LeftJoin<OrderDetails>((o,d)=>o.id==d.orderid).Select(o=>o).ToList(); //是Join的表var rightQuery= db.Queryable<OrderItem>().IgnoreColumns(it=>it.Files);var list=db.Queryable<Order>().LeftJoin(rightQuery,(o,d)=>o.Id == d.OrderId).Select(o=>o).ToList(); |
SqlSugar基础查询的更多相关文章
- HQL基础查询语句
HQL基础查询语句 1.使用hql语句检索出Student表中的所有列 //核心代码 @Test public void oneTest() { Query query=session.createQ ...
- Mego开发文档 - 基础查询
基础查询 Mego 使用语言集成查询(LINQ)从数据库查询数据.LINQ允许您使用C#(或其他.NET语言)根据派生的上下文和实体类编写强类型查询.将LINQ查询的表示传递给数据库提供者,翻译为数据 ...
- T-SQL基础查询——单表查询
1,查询的顺序 SELECT empid, YEAR(orderdate) AS orderyear, COUNT(*) AS numorders FROM Sales.Orders GROUP BY ...
- Mongodb 基础 查询表达式
数据库操作 查看:show dbs; 创建:use dbname; // db.createCollection('collection_name'); 隐式创建,需要创建的数据库中有表才表示创 ...
- mysql基础查询语法
一.mysql查询的五种子句 where子句(条件查询):按照“条件表达式”指定的条件进行查询. group by子句(分组):按照“属性名”指定的字段进行分组.group by子句通常和count( ...
- SQL基础--查询之三--嵌套查询
SQL基础--查询之三--嵌套查询
- SQL基础--查询之五--查询语句一般格式
SQL基础--查询之五--查询语句一般格式
- SQL基础--查询之四--集合查询
SQL基础--查询之四--集合查询
- SQL基础--查询之一--单表查询
SQL基础--查询之一--单表查询
- SQL基础--查询之二--连接查询
SQL基础--查询之二--连接查询
随机推荐
- docker中安装的mysql无法远程连接问题解决
背景: 在ubuntu1804的docker中安装了mysql,版本是5.7.34.因为有复杂的数据要插入到数据库中,所以从宿主机通过pycharm和DBeaver连接,但是一直报错: Can not ...
- CNCF大使预测:2024年云原生面临倦怠、离职及云成本精简
本文由 CNCF 大使 Eric D. Schabell 撰写,预测2024年云原生领域最可能发生的3大变化,并与其对云原生可观测性领域的见解结合. 关注云原生倦怠 毫无疑问,在 2023 年中云原生 ...
- 你不知道的vue3:使用runWithContext实现在非 setup 期间使用inject
前言 日常开发时有些特殊的场景需要在非 setup 期间调用inject函数,比如app中使用provide注入的配置信息需要在发送http请求时带上传给后端.对此我们希望不在每个发起请求的地方去修改 ...
- MB51增强
一.在MB51报表中新增列 包含文件RM07DOCS_GENERATED的itab结构中,新增字段 在RM07DOCS中的detail_list子例程中添加查询逻辑 在子例程build_fieldca ...
- AtCoder Beginner Contest 189 Personal Editorial
第一次参加 AtCoder 的比赛,感觉还挺简单. 比赛链接:https://atcoder.jp/contests/abc189 A - Slot // Author : RioTian // Ti ...
- go语言-Go环境搭建
go语言-Go环境搭建 下载 https://golang.org/dl/ 切换root权限 su root 进入用户列表 cd /usr/local/ 解压缩 tar -zxvf go1.13.li ...
- 活动回顾|阿里云 Serverless 技术实践营 Serverless +AI 专场
8月25日"阿里云Serverless技术实践营( Serverless + AI 专场)"北京站圆满落幕.活动受众以关注 Serverless +AI 技术的开发者.企业决策人. ...
- uni-app图片上传接口联调
https://www.bilibili.com/video/BV1jy4y1B7pw?p=159&spm_id_from=pageDriver
- poj 3268 最短路
***题意:在x这个点有个聚会,其他的点要到x这个点,然后再会自己原始的点,求一来一回最大的那个距离 做法:两边dijstra算法,因为是单向图,要注意更新顺序*** #include<iost ...
- kibana上执行ES DSL语言查询数据并查看表结构与数据、删除索引、查看文件大小
转载请注明出处: 1.kibana 上执行DSL 语言: 在kibana 中找到 Dev Tools,并双击打开,就可以进入执行DSL得执行页面了 执行DSL,示例如图: 2.在kibana上查看ES ...