正文
MyDAL - like && not like 条件 使用
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
索引:
目录索引
一.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 条件 使用的更多相关文章- MyDAL - in &;&; not in 条件 使用
索引: 目录索引 一.API 列表 C# 代码中 接口 IList.Contains() 方法生成 SQL 对应的 in(val1,val2,... ...) 如:.Queryer<Agent& ...
- MyDAL - .Where() 之 .WhereSegment 根据条件 动态设置 Select查询条件 使用
索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...
- MyDAL - .UpdateAsync() 之 .SetSegment 根据条件 动态设置 要更新的字段 使用
索引: 目录索引 一.API 列表 1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段 见如下示例. 二.API 单表-完整 方法 举例 // update 要赋值的变量 var ...
- MyDAL - is null &;&; is not null 条件 使用
索引: 目录索引 一.API 列表 C# 代码中 instance.property == null 生成 SQL 对应的 is null : 如:.Queryer<Agent>() .. ...
- MyDAL - 快速使用
索引: 目录索引 一.安装 在 VS 中执行一下 package 命令: PM> Install-Package MyDAL 二.API-快速使用 1.命名空间,只需: using MyDAL; ...
- Python学习--04条件控制与循环结构
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
- ASP.NET Core应用针对静态文件请求的处理[2]: 条件请求与区间请求
通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求.对于StaticFileMiddlew ...
- 多线程条件通行工具——AbstractQueuedSynchronizer
本文原创,转载请注明出处! 参考文章: <"JUC锁"03之 公平锁(一)> <"JUC锁"03之 公平锁(二)> AbstractOw ...
- 【NLP】前戏:一起走进条件随机场(一)
前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...
随机推荐- python2.x与3.x差别
数字常量: 八进制 十六进制 二进制 2:0177 0o177 0x9ff 0b101010 3:0o177 0x9ff 0b101010 多种字符串: 2:一般字符串,Unicode字符串 3: ...
- antd 学习
1,react中文文档http://reactjs.cn/react/docs/thinking-in-react-zh-CN.html 2,antd文档 https://ant.design/doc ...
- 线段树(codevs1082)
type jd=record z,y,lc,rc,sum,toadd:int64; end; var tree:..] of jd; qzh:..] of int64; x:..] of int64; ...
- android 自定义控件 使用declare-styleable进行配置属性(源码角度)
android自定义styleableattrs源码 最近在模仿今日头条,发现它的很多属性都是通过自定义控件并设定相关的配置属性进行配置,于是便查询了解了下declare-styleabl ...
- wordpress内存不足问题“Fatal error:out of memoryin etc...”
2016年3月22日wordpress用户名及密码登录,出现: “ Fatal error: Out of memory (allocated 19136512) (tried to allocate ...
- SharePoint表单和工作流 - Nintex篇(六)
博客地址 http://blog.csdn.net/foxdave 接上篇点击打开链接 在工作流Action的配置对话框中,点击"Edit with Nintex Forms",上 ...
- php中for循环的应用
for 循环是 PHP 中最复杂的循环结构.它的行为和 C 语言的相似.在PHP中使用的是执行相同的代码集的次数. for 循环的语法是: for (expr1; expr2; expr3)state ...
- Windows使用Gitblit搭建Git服务器
安装之前需确定安装JAVA运行环境. 下载安装 首先到 Gitblit官网 下载安装包.此处使用的版本是1.8.0. 将解压得到的gitblit-1.8.0文件夹放于C:\gitServer目录下. ...
- xls表格 ctrl+D 和ctrl+Enter区别 --快速填充相同数据,同时填充多个不同数据
一.ctrl+Enter应用 如何快速实现下图两个图的填充值效果? ==>效果 1. 选择A列,或者所需要填充的范围 (下面利用 ctrl+G定位应用) 2.Ctrl+G 定位 选择 空值 在 ...
- 《Head First JavaScript》 学习笔记
<scipt type="text/javascript" src"cookie.js"> </script> //脚本署名方法 &l ...
索引: 目录索引 一.API 列表 C# 代码中 接口 IList.Contains() 方法生成 SQL 对应的 in(val1,val2,... ...) 如:.Queryer<Agent& ...
索引: 目录索引 一.API 列表 1.WhereSegment 属性,指示 根据条件 动态拼接 where 查询过滤条件 见如下示例. 二.API 单表-完整 方法 举例 // 上下文条件 变量 v ...
索引: 目录索引 一.API 列表 1.SetSegment 属性,指示 根据条件 动态拼接 要修改的字段 见如下示例. 二.API 单表-完整 方法 举例 // update 要赋值的变量 var ...
索引: 目录索引 一.API 列表 C# 代码中 instance.property == null 生成 SQL 对应的 is null : 如:.Queryer<Agent>() .. ...
索引: 目录索引 一.安装 在 VS 中执行一下 package 命令: PM> Install-Package MyDAL 二.API-快速使用 1.命名空间,只需: using MyDAL; ...
Python学习--04条件控制与循环结构 条件控制 在Python程序中,用if语句实现条件控制. 语法格式: if <条件判断1>: <执行1> elif <条件判断 ...
通过调用ApplicationBuilder的扩展方法UseStaticFiles注册的StaticFileMiddleware中间件帮助我们处理针对文件的请求.对于StaticFileMiddlew ...
本文原创,转载请注明出处! 参考文章: <"JUC锁"03之 公平锁(一)> <"JUC锁"03之 公平锁(二)> AbstractOw ...
前戏:一起走进条件随机场 作者:白宁超 2016年8月2日13:59:46 [摘要]:条件随机场用于序列标注,数据分割等自然语言处理中,表现出很好的效果.在中文分词.中文人名识别和歧义消解等任务中都有 ...
- python2.x与3.x差别
数字常量: 八进制 十六进制 二进制 2:0177 0o177 0x9ff 0b101010 3:0o177 0x9ff 0b101010 多种字符串: 2:一般字符串,Unicode字符串 3: ...
- antd 学习
1,react中文文档http://reactjs.cn/react/docs/thinking-in-react-zh-CN.html 2,antd文档 https://ant.design/doc ...
- 线段树(codevs1082)
type jd=record z,y,lc,rc,sum,toadd:int64; end; var tree:..] of jd; qzh:..] of int64; x:..] of int64; ...
- android 自定义控件 使用declare-styleable进行配置属性(源码角度)
android自定义styleableattrs源码 最近在模仿今日头条,发现它的很多属性都是通过自定义控件并设定相关的配置属性进行配置,于是便查询了解了下declare-styleabl ...
- wordpress内存不足问题“Fatal error:out of memoryin etc...”
2016年3月22日wordpress用户名及密码登录,出现: “ Fatal error: Out of memory (allocated 19136512) (tried to allocate ...
- SharePoint表单和工作流 - Nintex篇(六)
博客地址 http://blog.csdn.net/foxdave 接上篇点击打开链接 在工作流Action的配置对话框中,点击"Edit with Nintex Forms",上 ...
- php中for循环的应用
for 循环是 PHP 中最复杂的循环结构.它的行为和 C 语言的相似.在PHP中使用的是执行相同的代码集的次数. for 循环的语法是: for (expr1; expr2; expr3)state ...
- Windows使用Gitblit搭建Git服务器
安装之前需确定安装JAVA运行环境. 下载安装 首先到 Gitblit官网 下载安装包.此处使用的版本是1.8.0. 将解压得到的gitblit-1.8.0文件夹放于C:\gitServer目录下. ...
- xls表格 ctrl+D 和ctrl+Enter区别 --快速填充相同数据,同时填充多个不同数据
一.ctrl+Enter应用 如何快速实现下图两个图的填充值效果? ==>效果 1. 选择A列,或者所需要填充的范围 (下面利用 ctrl+G定位应用) 2.Ctrl+G 定位 选择 空值 在 ...
- 《Head First JavaScript》 学习笔记
<scipt type="text/javascript" src"cookie.js"> </script> //脚本署名方法 &l ...