目录:

1.判断是否为空或者null

2.普通包含模糊查询

  1)以某字符串开头的模糊查询

  2)以某字符串结尾的模糊查询

  3)包含某字符串的模糊查询

3.精确到字符串对应位数字符的模糊查询(*重点)

linq大家肯定用过,对于其中的模糊查询肯定也有所了解

提起linq的模糊查询首先大家想到的肯定是 Contains

不错这也是linq模糊查询的精髓,一般的模糊查询用 Contains都是可以解决的,特护的精确到字符串某一位的迷糊查询就得另想办法了,

话不多说,下面一一说下模糊查询:

先贴出整个查询,在一一说明,并且把对应的sql语句也会写出来:

using (SrsContext db = new SrsContext())
{
var dt1 = (from des in db.ModelsVehicleRecognition
where (!string.IsNullOrEmpty(des.PlateNum))
select new { plateMun = des.PlateNum });
var var1 = dt1.ToList(); var dt2 = (from des in db.ModelsVehicleRecognition
where (des.PlateNum.StartsWith("皖A8"))
select new { plateMun = des.PlateNum });
var var2 = dt2.ToList(); var dt3 = (from des in db.ModelsVehicleRecognition
where (des.PlateNum.EndsWith("68T"))
select new { plateMun = des.PlateNum });
var var3= dt3.ToList(); var dt4 = (from des in db.ModelsVehicleRecognition
where (des.PlateNum.Contains("A3"))
select new { plateMun = des.PlateNum });
var var4 = dt4.ToList(); var dt5 = (from des in db.ModelsVehicleRecognition
where (SqlFunctions.PatIndex("_a__3%", des.PlateNum) > )
select new { plateMun=des.PlateNum});
var var5 = dt5.ToList();
}

1.判断是否为空或者null

string.IsNullOrEmpty(des.PlateNum)————————>sql server的PlateNum is null的判断

from des in db.ModelsVehicleRecognition where (!string.IsNullOrEmpty(des.PlateNum)) select new { plateMun = des.PlateNum }

等同于

SELECT PlateNum FROM VehicleRecognition WHERE PlateNum IS NOT NULL

2.普通包含模糊查询

1)以某字符串开头的模糊查询

des.PlateNum.StartsWith("皖A8") ————————>sql server 的   like '皖A8%'

from des in db.ModelsVehicleRecognition where (des.PlateNum.StartsWith("皖A8")) select new { plateMun = des.PlateNum }

等同于

SELECT PlateNum FROM VehicleRecognition WHERE PlateNum  like '皖A8%'

2)以某字符串结尾的模糊查询

des.PlateNum.EndsWith("68T") ————————>sql server 的   like '%68T'

from des in db.ModelsVehicleRecognition where (des.PlateNum.EndsWith("68T")) select new { plateMun = des.PlateNum }

等同于

SELECT PlateNum FROM VehicleRecognition WHERE PlateNum  like '%68T'

3)包含某字符串的模糊查询

des.PlateNum.Contains("A3") ————————>sql server 的   like '%A3%'

from des in db.ModelsVehicleRecognition where (des.PlateNum.Contains("A3")) select new { plateMun = des.PlateNum }

等同于

SELECT PlateNum FROM VehicleRecognition WHERE PlateNum  like '%A3%'

3.精确到字符串对应位数字符的模糊查询(*重点)

SqlFunctions.PatIndex("_a__3%", des.PlateNum) > 0————————>sql server 的   like '_a__3%'

from des in db.ModelsVehicleRecognition where (SqlFunctions.PatIndex("_a__3%", des.PlateNum) > 0) select new { plateMun = des.PlateNum }

等同于

SELECT PlateNum FROM VehicleRecognition WHERE PlateNum  like '_a__3%'

说明:'_a__3%' 中的下划线“_”表示一个字符,'_a__3%' 这个字符串查询意思就是第二个字符是a,第五个字符是3的字符串

因为a和3之间有两个下划线“_”所以查询出的结果也要满足a和3之间有两个字符才行,

也就是说两个精确字符之间隔了几个字符,在查询的时候就要写几个下划线“_”。

最后最后最后,重要的事情说三遍,来着是客,如果您觉得好就推荐或评论下,觉得不好希望能得到您的建议,继续改善.

Linq的模糊查询(包含精确模糊查询)的更多相关文章

  1. Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法

    Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法 2016-10-10 16:52:38                             ...

  2. 通过带参数的Sql语句来实现模糊查询(多条件查询)

    #region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...

  3. Linq to BBJECT之非延时标准查询操作符

    非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用. 1.ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组. 方法原型: ...

  4. LINQ to Objects系列(2)两种查询语法介绍

    LINQ为我们提供了两种查询语法,分别是查询表达式和查询方法语法.这篇文章分为以下几个方面进行总结. 1,一个包含两种查询语法的简单示例 2,查询表达式的结构 3,查询方法相关的运算符 一个包含两种查 ...

  5. Oracle生成查询包含指定字段名对应的所有数据表记录语句

    应用场合:已知字段名字,查询数据库中所有数据表中包含该字段名的所有数据表 操作办法:指定字段名,数据库表用户,执行下面查询语句即可 --Oracle生成查询包含指定字段名对应的所有数据表记录语句 de ...

  6. sql中字段名中包含特殊字符的查询方法

    sql中字段名章包含特殊字符的查询方法:例如包含"",student表中字段为:id“学号”.name"姓名". 解决办法:用英文下的 "`" ...

  7. Linq to Object之非延迟标准查询操作符

    非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用. 1.ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组. 方法原型: ...

  8. oracle查询包含大小写的数据

    查询包含小写的所有数据: select oper_no from info_oper where regexp_like(oper_no,'[[:lower:]]'); select oper_no  ...

  9. 可视化查询(sp_helptext)——快速查询包含指定字符串的存储过程(附源码)

    前言 在开发中,随着业务逻辑的调整,修改存储过程是必不可免的. 那怎么定位到需要修改的存储过程呢?一个一个的点开查询?存储过程少的话还行,一旦存储过程过多,这样是很浪费时间的,一个不注意还会遗漏掉. ...

随机推荐

  1. 北京Uber优步司机奖励政策(11月23日~11月29日)

    用户组:人民优步"关羽组"(适用于11月23日-11月29日)奖励政策: 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最 ...

  2. 北京Uber优步司机奖励政策(10月19日~10月25日)

    用户组:优步北京人民优步A组(适用于10月19日-10月25日) 滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万 ...

  3. DSP5509之采样定理

    1. 在实际种信号是模拟连续的,但是AD采样确实离散的数字的,根据采样定理,采样频率要是模拟信号的频率2倍以上采样到的值才没问题. 2. 打开工程 unsigned ]; main() { int i ...

  4. java 面向对象一

    一 基础部分 1.基本数据类型 Java的八种基本数据类型不支持面向对象的编程机制,不具备“对象”的特性:没有成员变量.方法可以调用.java之所以提供这八种基本数据类型,是为了照顾程序员的传统习惯. ...

  5. 使用 adb 命令一次性为多个设备安装 apk

    使用 adb 命令一次性为多个设备安装 apk 原创 2016年07月15日 10:40:53 3154 命令简介 adb install [-lrtsdg] (file) 把包文件推送到设备上并安装 ...

  6. 【SpringCloud 】第八篇: 消息总线(Spring Cloud Bus)

    前言: 必需学会SpringBoot基础知识 简介: spring cloud 为开发人员提供了快速构建分布式系统的一些工具,包括配置管理.服务发现.断路器.路由.微代理.事件总线.全局锁.决策竞选. ...

  7. 第六模块:WEB框架开发 第1章·Django框架开发50~87

    51-表关系之一对多 52-表关系之多对多 53-表关系之一对一 54-数据库表关系之关联字段与外键约束 55-数据库表关系之sql创建关联表 56-ORM生成关联表模型 57-多表操作之一对多添加记 ...

  8. mysql面试常见题目3

    三十六大 冯唐 春水初生, 春林初盛, 春风十里,不如你. 秋风落叶, 秋雨绵绵, 愁心上秋,只为你. 某个员工信息表结构和数据如下: id name dept salary edlevel hire ...

  9. hihocoder刷题 扫雷游戏

    题目1 : 扫雷游戏 时间限制:10000ms 单点时限:1000ms 内存限制:256MB 描述 给定一个N × N的方格矩阵,其中每个格子或者是'*',表示该位置有一个地雷:或者是'.',表示该位 ...

  10. ubuntu ssh配置

    Secure Shell (SSH) is a cryptographic network protocol for operating network services securely over ...