索引:

目录索引

一.API 列表

  C# 代码中 String.Contains("conditionStr") 生成 SQL 对应的 like '%conditionStr%'

    如:.Queryer<Agent>()

      ... ...

      .Where(it => it.PathId.Contains("~00-d-3-1-"))

      ... ... 用于 单表 like 条件

      .Queryer(out Agent agent1, out AgentInventoryRecord record1)

      ... ...

      .Where(() => agent1.Name.Contains("陈"))

      ... ... 用于 多表连接 like 条件

  C# 代码中 String.StartsWith("conditionStr") 生成 SQL 对应的 like 'conditionStr%'

    如:.Queryer<Agent>()

      ... ...

      .Where(it => it.PathId.StartsWith("~00-d-3-1-"))

      ... ... 用于 单表 like 条件

      .Queryer(out Agent agent13, out AgentInventoryRecord record13)

      ... ...

      .Where(() => agent13.Name.StartsWith("张"))

      ... ... 用于 多表连接 like 条件

  C# 代码中 String.EndsWith("conditionStr") 生成 SQL 对应的 like '%conditionStr'

    如:.Queryer<Agent>()

      ... ...

      .Where(it => it.PathId.EndsWith("~00-d-3-1-"))

      ... ... 用于 单表 like 条件

      .Queryer(out Agent agent13, out AgentInventoryRecord record13)

      ... ...

      .Where(() => agent13.Name.EndsWith("华"))

      ... ... 用于 多表连接 like 条件

  MySQL 通配符 %(百分号)  /  _(下划线)

     在 string 变量中若检测到 通配符 存在,则以自定义的通配符表达式 在 DB 中进行 like 查询

  C# 代码中 通配符转义 /%(百分号转义)  /  /_(下划线转义)

        在 string 变量中若检测到 通配符转义 存在 ,则会在 DB 中以转义后 字面值 的形式进行 like 查询

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

  1. like 条件

 var res1 = await Conn.QueryListAsync<Agent>(it => it.Name.Contains("陈"));

    以 MySQL 为例,生成 SQL 如下:

 select *
from `agent`
where `Name` like CONCAT('%',?Name_1,'%');

   2. not like 条件

 var res1 = await Conn.QueryListAsync<Agent>(it => !it.Name.Contains("刘"));

    以 MySQL 为例,生成 SQL 如下:

 select *
from `agent`
where `Name` not like CONCAT('%',?Name_1,'%');

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

  1. like 条件

             var res1 = await Conn
.Queryer<Agent>()
.Where(it => it.CreatedOn >= Convert.ToDateTime("2018-08-23 13:36:58").AddDays(-))
.And(it => it.PathId.Contains("~00-d-3-1-"))
.QueryPagingAsync(, );

    以 MySQL 为例,生成 SQL 如下:

 -- 总数
select count(*)
from `agent`
where `CreatedOn`>=?CreatedOn_1
and `PathId` like CONCAT('%',?PathId_2,'%'); -- 分页数据
select *
from `agent`
where `CreatedOn`>=?CreatedOn_1
and `PathId` like CONCAT('%',?PathId_2,'%')
order by `Id` desc
limit 0,10;

  2. not like 条件

             var res1 = await Conn
.Queryer<Agent>()
.Where(it => !it.PathId.Contains("~00-d-3-1-"))
.QueryPagingAsync(, );

    以 MySQL 为例,生成 SQL 如下:

 -- 总数
select count(*)
from `agent`
where `PathId` not like CONCAT('%',?PathId_1,'%'); -- 分页数据
select *
from `agent`
where `PathId` not like CONCAT('%',?PathId_1,'%')
order by `Id` desc
limit 0,10;

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

  1. like 条件

             var res1 = await Conn
.Queryer(out Agent agent1, out AgentInventoryRecord record1)
.From(() => agent1)
.InnerJoin(() => record1)
.On(() => agent1.Id == record1.AgentId)
.Where(() => agent1.Name.Contains("陈"))
.QueryListAsync<AgentInventoryRecord>();

    以 MySQL 为例,生成 SQL 如下:

 select record1.`*`
from `agent` as agent1
inner join `agentinventoryrecord` as record1
on agent1.`Id`=record1.`AgentId`
where agent1.`Name` like CONCAT('%',?Name_4,'%');

  2. not like 条件

             var res1 = await Conn
.Queryer(out Agent agent1, out AgentInventoryRecord record1)
.From(() => agent1)
.InnerJoin(() => record1)
.On(() => agent1.Id == record1.AgentId)
.Where(() => !agent1.Name.Contains("陈"))
.QueryListAsync<AgentInventoryRecord>();

    以 MySQL 为例,生成 SQL 如下:

 select record1.`*`
from `agent` as agent1
inner join `agentinventoryrecord` as record1
on agent1.`Id`=record1.`AgentId`
where agent1.`Name` not like CONCAT('%',?Name_4,'%');

五.String.StartsWith() 举例

  1. like 条件

             var res13 = await Conn
.Queryer(out Agent agent13, out AgentInventoryRecord record13)
.From(() => agent13)
.InnerJoin(() => record13)
.On(() => agent13.Id == record13.AgentId)
.Where(() => agent13.Name.StartsWith("张"))
.QueryListAsync<Agent>();

    以 MySQL 为例,生成 SQL 如下,其中 ?Name_4 的值会自动生成 '张%'

 select agent13.`*`
from `agent` as agent13
inner join `agentinventoryrecord` as record13
on agent13.`Id`=record13.`AgentId`
where agent13.`Name` like ?Name_4;

  2. not like 条件

             var res22 = await Conn
.Queryer(out Agent agent22, out AgentInventoryRecord record22)
.From(() => agent22)
.InnerJoin(() => record22)
.On(() => agent22.Id == record22.AgentId)
.Where(() => !agent22.Name.StartsWith("张"))
.QueryListAsync<Agent>();

    以 MySQL 为例,生成 SQL 如下,其中 ?Name_4 的值会自动生成 '张%'

 select agent22.`*`
from `agent` as agent22
inner join `agentinventoryrecord` as record22
on agent22.`Id`=record22.`AgentId`
where agent22.`Name` not like ?Name_4;

六.String.EndsWith() 举例

  1. like 条件

             var res13 = await Conn
.Queryer(out Agent agent13, out AgentInventoryRecord record13)
.From(() => agent13)
.InnerJoin(() => record13)
.On(() => agent13.Id == record13.AgentId)
.Where(() => agent13.Name.EndsWith("华"))
.QueryListAsync<Agent>();

    以 MySQL 为例,生成 SQL 如下,其中 ?Name_4 的值会自动生成 '%华'

 select agent13.`*`
from `agent` as agent13
inner join `agentinventoryrecord` as record13
on agent13.`Id`=record13.`AgentId`
where agent13.`Name` like ?Name_4;

  2. not like 条件

             var res22 = await Conn
.Queryer(out Agent agent22, out AgentInventoryRecord record22)
.From(() => agent22)
.InnerJoin(() => record22)
.On(() => agent22.Id == record22.AgentId)
.Where(() => !agent22.Name.EndsWith("华"))
.QueryListAsync<Agent>();

    以 MySQL 为例,生成 SQL 如下,其中 ?Name_4 的值会自动生成 '%华'

 select agent22.`*`
from `agent` as agent22
inner join `agentinventoryrecord` as record22
on agent22.`Id`=record22.`AgentId`
where agent22.`Name` not like ?Name_4;

七.MySQL 通配符 %(百分号) 、 _(下划线) 举例

  1. %

 var res5 = await Conn.QueryListAsync<Agent>(it => it.Name.Contains("陈%"));

    以 MySQL 为例,生成 SQL 如下,其中 like 的时候 会保留 原状 按自定义的 格式串 查询,?Name_1 的值为 '陈%'

 select *
from `agent`
where `Name` like ?Name_1;

  2. _

 var res6 = await Conn.QueryListAsync<Agent>(it => it.Name.Contains("王_"));

    以 MySQL 为例,生成 SQL 如下,其中 like 的时候 会保留 原状 按自己定义的 格式串 查询,?Name_1 的值为 '王_'

 select *
from `agent`
where `Name` like ?Name_1;

八.MySQL 通配符转义 /%(百分号转义)、/_(下划线转义) 举例

  1. /%

             var res7 = await Conn
.Queryer<Agent>()
.Where(it => it.Name.Contains("刘/%_"))
.And(it => it.Id == resx4.Id)
.And(it => it.Name.Contains("%华"))
.And(it => it.Name.Contains("%/%%"))
.QueryListAsync();

    以 MySQL 为例,生成 SQL 如下,其中 ?Name_1 的值为 '刘/%_' ,% 会按其 字面义 在DB中匹配查询

 select *
from `agent`
where `Name` like ?Name_1 escape '/'
and `Id`=?Id_2
and `Name` like ?Name_3
and `Name` like ?Name_4 escape '/';

  2. /_

             var res8 = await Conn.QueryListAsync<Agent>(it => it.Name.Contains("何/__"));

    以 MySQL 为例,生成 SQL 如下,其中 ?Name_1 的值为 '何/__' ,_ 会按其 字面义 在DB中匹配查询

 select *
from `agent`
where `Name` like ?Name_1 escape '/';

                                         蒙

                                    2019-02-18 14:45 周一

                                    2019-02-24 17:50 周日

                                    2019-04-13 00:29 周六

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

  1. MyDAL - in && not in 条件 使用

    索引: 目录索引 一.API 列表 C# 代码中 接口 IList.Contains() 方法生成 SQL 对应的 in(val1,val2,... ...) 如:.Queryer<Agent& ...

  2. MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用

    索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...

  3. MyDAL - .UpdateAsync() 之 .SetSegment 根据条件 动态设置 要更新的字段 使用

    索引: 目录索引 一.API 列表 1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段 见如下示例. 二.API 单表-完整 方法 举例 // update 要赋值的变量 var ...

  4. MyDAL - is null && is not null 条件 使用

    索引: 目录索引 一.API 列表 C# 代码中 instance.property == null 生成 SQL 对应的 is null : 如:.Queryer<Agent>() .. ...

  5. MyDAL - 快速使用

    索引: 目录索引 一.安装 在 VS 中执行一下 package 命令: PM> Install-Package MyDAL 二.API-快速使用 1.命名空间,只需: using MyDAL; ...

  6. Python学习--04条件控制与循环结构

    Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...

  7. ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求

    通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求.对于StaticFileMiddlew ...

  8. 多线程条件通行工具——AbstractQueuedSynchronizer

    本文原创,转载请注明出处! 参考文章: <"JUC锁"03之 公平锁(一)> <"JUC锁"03之 公平锁(二)> AbstractOw ...

  9. 【NLP】前戏:一起走进条件随机场(一)

    前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...

随机推荐

  1. ASP.NET Razor

    一.为什么要学习Razor? 可以让服务器代码(就是c#和vb)嵌入到网页中,也就是说这个页面中包含html代码和C#(vb)代码.基于服务器的代码可以在网页传送给浏览器时,创建动态 Web 内容.当 ...

  2. ASP.NET MVC如何做一个简单的非法登录拦截

    摘要:做网站的时候,经常碰到这种问题,一个没登录的用户,却可以通过localhost:23244/Main/Index的方式进入到网站的内部,查看网站的信息.我们知道,这是极不安全的,那么如何对这样的 ...

  3. WebStorm出现中文乱码解决代码

    今天用WebStorm运行html代码时,出现中文乱码,试了Settings里File Encodings,将编码形式改为utf-8,结果还是不行. 最后用代码解决了问题,代码如下: <meta ...

  4. 2017-12-24 为新语言编写Visual Studio Code语法高亮插件

    本文源码库: program-in-chinese/quan4-highlighter 语法高亮是一个开发环境的基本功能. 此文尝试为之前的"圈4"语言(详见编程语言试验之Antl ...

  5. Ambari 常用的 REST API 介绍

    源码文档路径:ambari\ambari-server\docs\api\v1 swagger风格api文档:https://www.cnblogs.com/felixzh/p/10694724.ht ...

  6. 在linux中访问macos 下的分区。

    花钱的解决方案是找专业的:   Paragon Software  他们家有各种套件,让你在window Linux 都能访问到苹果分区里面的内容. 但是Windows删除了它的驱动之后一开机就蓝屏. ...

  7. Spring Cloud 微服务架构学习笔记与示例

    本文示例基于Spring Boot 1.5.x实现,如对Spring Boot不熟悉,可以先学习我的这一篇:<Spring Boot 1.5.x 基础学习示例>.关于微服务基本概念不了解的 ...

  8. Android-PickerView【仿iOS的PickerView控件,并封装了时间选择和选项选择这两种选择器】使用

    版权声明:本文为HaiyuKing原创文章,转载请注明出处! 前言 本文主要演示Android-PickerView的选项选择器.时间选择器的简单运用.由于每一个版本略有不用,所以实际使用方式以git ...

  9. Kubernetes的DaemonSet(上篇)

    背景 静儿作为美团容器化团队HULK的一员,经常需要和Kubernetes(k8s)打交道.第一次登陆node(宿主机)的时候,发现连续登陆几台都看到了Prometheus-Node-Exporter ...

  10. Java集合详解4:HashMap和HashTable

    今天我们来探索一下HashMap和HashTable机制与比较器的源码. 具体代码在我的GitHub中可以找到 https://github.com/h2pl/MyTech 喜欢的话麻烦star一下哈 ...