索引:

目录索引

一.API 列表

  C# 代码中 instance.property == null 生成 SQL 对应的 is null :

    如:.Queryer<Agent>()

      ... ...

      .Where(it => it.CrmUserId == null)

      ... ... 用于 单表 is null 条件

      .Queryer(out Agent a5,out AgentInventoryRecord r5)

      ... ...

      .Where(() => a5.ActiveOrderId==null)

      ... ... 用于 多表连接 is null 条件

  C# 代码中 instance.propery != null 生成 SQL 对应的 is not null :

    如:.Queryer<Agent>()

      ... ...

      .Where(it => it.ActiveOrderId != null)

      ... ... 用于 单表 is not null 条件

      .Queryer(out Agent a6, out AgentInventoryRecord r6)

      ... ...

      .Where(() => a6.ActiveOrderId != null)

      ... ... 用于 多表连接 is not null 条件

二.API 单表-便捷 方法 举例

  1. IS NULL 条件

             var res7 = await Conn.QueryListAsync<Agent>(it => it.ActiveOrderId == null);

    以 MySQL 为例,生成 SQL 如下:

 select *
from `agent`
where `ActiveOrderId` is null ;

  2. IS NOT NULL 条件

             var res8 = await Conn.QueryListAsync<Agent>(it => it.ActiveOrderId != null);

    以 MySQL 为例,生成 SQL 如下:

 select *
from `agent`
where `ActiveOrderId` is not null ;

三.API 单表-完整 方法 举例

  1. IS NULL 条件

             var res1 = await Conn
.Queryer<Agent>()
.Where(it => it.ActiveOrderId == null)
.QueryListAsync();

    以 MySQL 为例,生成 SQL 如下:

 select *
from `agent`
where `ActiveOrderId` is null ;

  2. IS NOT NULL 条件

             var res4 = await Conn
.Queryer<Agent>()
.Where(it => it.ActivedOn != null && it.ActiveOrderId != null && it.CrmUserId == null)
.QueryListAsync();

    以 MySQL 为例,生成 SQL 如下:

 select *
from `agent`
where (( `ActivedOn` is not null && `ActiveOrderId` is not null ) && `CrmUserId` is null );

四.API 多表连接-完整 方法 举例

  1. IS NULL 条件

             var res5 = await Conn
.Queryer(out Agent a5,out AgentInventoryRecord r5)
.From(()=>a5)
.LeftJoin(()=>r5)
.On(()=>a5.Id==r5.AgentId)
.Where(() => a5.ActiveOrderId==null)
.QueryListAsync<Agent>();

    以 MySQL 为例,生成 SQL 如下:

 select a5.`*`
from `agent` as a5
left join `agentinventoryrecord` as r5
on a5.`Id`=r5.`AgentId`
where a5.`ActiveOrderId` is null ;

  2. IS NOT NULL 条件

             var res6 = await Conn
.Queryer(out Agent a6, out AgentInventoryRecord r6)
.From(() => a6)
.LeftJoin(() => r6)
.On(() => a6.Id == r6.AgentId)
.Where(() => a6.ActiveOrderId != null)
.QueryListAsync<Agent>();

    以 MySQL 为例,生成 SQL 如下:

 select a6.`*`
from `agent` as a6
left join `agentinventoryrecord` as r6
on a6.`Id`=r6.`AgentId`
where a6.`ActiveOrderId` is not null ;

                                         蒙

                                    2019-01-20 22:22 周日

                                    2019-04-12 23:47 周五

MyDAL - is null && is not null 条件 使用的更多相关文章

  1. SQL语句中=null和is null

    平时经常会遇到这两种写法:IS NOT NULL与!=NULL.也经常会遇到数据库有符合条件!=NULL的数据,但是返回为空集合.实际上,是由于对二者使用区别理解不透彻. 默认情况下,推荐使用 IS ...

  2. mysql探究之null与not null

    相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 1.我字段类型是not null,为什么我可以插入空值 2.为毛not null的效率比null高 3.判断字段 ...

  3. 【MySQL】探究之null与not null

    相信很多用了mysql很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 我字段类型是not null,为什么我可以插入空值 为毛not null的效率比null高 判断字段不为空的时候 ...

  4. 数据库中is null(is not null)与=null(!=null)的区别

    在标准SQL语言(ANIS SQL)SQL-92规定的Null值的比较取值结果都为False,既Null=Null取值也是False.NULL在这里是一种未知值,千变万化的变量,不是“空”这一个定值! ...

  5. 索引法则--IS NULL, IS NOT NULL 也无法使用索引

    Mysql 系列文章主页 =============== 1 数据准备 1.1 建表 DROP TABLE IF EXISTS staff; CREATE TABLE IF NOT EXISTS st ...

  6. MySQL null与not null和null与空值''的区别

    参考连接:https://segmentfault.com/a/1190000009540449 相信很多用了MySQL很久的人,对这两个字段属性的概念还不是很清楚,一般会有以下疑问: 我字段类型是n ...

  7. 数据库表字段,DEFAULT NULL与NOT NULL DEFAULT

    为什么要把字段设置成not null 呢? 1.空值是不占用空间的 2.mysql中的NULL其实是占用空间的,下面是来自于MYSQL官方的解释 “NULL columns require addit ...

  8. 转!!mysql 字段 is not null 和 字段 !=null

      今天在查询数据时,查到包含一条某个时间startTime(该字段默认为null ) 为null的记录,想把它过滤,加了 startTime != null 的条件,结果记录都没了,应该用条件 is ...

  9. IOS开发遇到(null)与<null>轻松处理

    在ios开发中不可避免的我们会遇到服务器返回的值有空值,但是如果是nil也就算了还可能得到(null)以及<null>的返回值,该如何处理呢?(当然有的字典转模型中已处理,可以通过遍历等) ...

随机推荐

  1. [Linux] host dig nslookup查询域名的DNS解析

    root@VM-38-204-ubuntu:~# host baidu.com baidu.com has address 220.181.57.216 baidu.com has address 1 ...

  2. 持续集成之 Nuget 进阶

    持续集成之 Nuget 进阶 Intro 之前介绍了一篇基于 Azure pipeline 的 nuget 包的持续集成配置,但是比较粗糙,这里介绍一下结合 Cake 实现更优雅的 nuget 包发布 ...

  3. MySQL中的自适应哈希索引

    众所周知,InnoDB使用的索引结构是B+树,但其实它还支持另一种索引:自适应哈希索引. 哈希表是数组+链表的形式.通过哈希函数计算每个节点数据中键所对应的哈希桶位置,如果出现哈希冲突,就使用拉链法来 ...

  4. 宝塔面板设置腾迅COS自动备份网站

    之前写了如何配置腾迅云COS并挂载到服务器中,今天看到宝塔面板中有腾迅云COS的插件,不过研究了下,只是将COS绑定在宝塔面板中,不能自动备份,需要用到宝塔的计划任务功能 1.下载腾迅云COS插件 2 ...

  5. centos6.7 配置Elasticsearch

    Elasticsearch(以下简称ES),是一款开源的全文搜索引擎,获得了广泛的应用.这篇博客将介绍在centos6.7上如何配置ES. 一.安装JAVA环境 centos默认安装了JAVA环境,首 ...

  6. MYSQL的group by笔记

    对应的表数据如下 现在的需求是要找出dcid为9951,9957,9064共同拥有的good_code. 第一种方案是 SELECT a.good_code FROM ( SELECT good_co ...

  7. dataframe行变换为列

    新建一个 dataFrame : val conf = new SparkConf().setAppName("TTyb").setMaster("local" ...

  8. Linux知识要点大全(第一章)

    第一章   Linux操作系统简介 主要内容: 1:Linux的发展历史               2:开源软件               3:Linux系统结构与特性               ...

  9. ASP.NET Core中使用GraphQL - 第一章 Hello World

    前言 你是否已经厌倦了REST风格的API? 让我们来聊一下GraphQL. GraphQL提供了一种声明式的方式从服务器拉取数据.你可以从GraphQL官网中了解到GraphQL的所有优点.在这一系 ...

  10. Android上的Badge,快速实现给应用添加角标

    应用角标是iOS的一个特色,原生Android并不支持.或许是因为当时iOS的通知栏比较鸡肋(当然现在已经改进了很多),而Android的通知栏功能强大?所以才出现了一方依赖于数字角标,一方坚持强大的 ...