Linq的模糊查询(包含精确模糊查询)
目录:
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的模糊查询(包含精确模糊查询)的更多相关文章
- Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法
Restrictions.like() 模糊查询,以及使用DetachedCriteria查询的一般用法 2016-10-10 16:52:38 ...
- 通过带参数的Sql语句来实现模糊查询(多条件查询)
#region 通过带参数的Sql语句来实现模糊查询(多条件查询) StringBuilder sb = new StringBuilder("select * from books&quo ...
- Linq to BBJECT之非延时标准查询操作符
非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用. 1.ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组. 方法原型: ...
- LINQ to Objects系列(2)两种查询语法介绍
LINQ为我们提供了两种查询语法,分别是查询表达式和查询方法语法.这篇文章分为以下几个方面进行总结. 1,一个包含两种查询语法的简单示例 2,查询表达式的结构 3,查询方法相关的运算符 一个包含两种查 ...
- Oracle生成查询包含指定字段名对应的所有数据表记录语句
应用场合:已知字段名字,查询数据库中所有数据表中包含该字段名的所有数据表 操作办法:指定字段名,数据库表用户,执行下面查询语句即可 --Oracle生成查询包含指定字段名对应的所有数据表记录语句 de ...
- sql中字段名中包含特殊字符的查询方法
sql中字段名章包含特殊字符的查询方法:例如包含"",student表中字段为:id“学号”.name"姓名". 解决办法:用英文下的 "`" ...
- Linq to Object之非延迟标准查询操作符
非延时标准查询操作符是指不具备延时查询特性的标准查询操作符,这些操作符一般用于辅助延时标准查询操作符使用. 1.ToArray操作符 ToArray操作符用于将一个输入序列转换成一个数组. 方法原型: ...
- oracle查询包含大小写的数据
查询包含小写的所有数据: select oper_no from info_oper where regexp_like(oper_no,'[[:lower:]]'); select oper_no ...
- 可视化查询(sp_helptext)——快速查询包含指定字符串的存储过程(附源码)
前言 在开发中,随着业务逻辑的调整,修改存储过程是必不可免的. 那怎么定位到需要修改的存储过程呢?一个一个的点开查询?存储过程少的话还行,一旦存储过程过多,这样是很浪费时间的,一个不注意还会遗漏掉. ...
随机推荐
- 青岛Uber优步司机奖励政策(1月4日~1月10日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- <cfloat> (float.h)
头文件: <cfloat> (float.h) 浮点类型的特性 这个头文件为特殊系统和编译器的实现描述了浮点类型的特征. 一个浮点数包含四个元素: 一个标志(a sign):正或负; 一个 ...
- 【icon】 图标组件说明
小程序默认了几种类型图标,其组件原型如下: <icon type="[success | success_no_circle | info | warn | waiting | can ...
- python函数学习之装饰器
装饰器 装饰器的本质是一个python函数,它的作用是在不对原函数做任何修改的同时,给函数添加一定的功能.装饰器的返回值也是一个函数对象. 分类: 1.不带参数的装饰器函数: def wrapper( ...
- 如何让thinkpad X1C 用U盘 安装上专业版win10
1 BIOS内置了文件 会导致win10 iso默认装家庭版 2 给iso 的resouse 目录中增加文件ei.cfg 3 内容如下 [EditionID]Professional[Channel] ...
- Java抽象与接口的区别
Java抽象与接口的区别 答案方式一.简单来说,1.接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的, 2.另外,实现接口的一定要实现接口里定义的所有 ...
- Python中的名字隐藏
Python对于module文件中的name是没有private和public区分的,严格来说,在module文件重定义的任何name,都可以被外界访问.但是,对于 from module imort ...
- Agri-Net(最小生成树)
Description Farmer John has been elected mayor of his town! One of his campaign promises was to brin ...
- 福大软工1816:beta版本冲刺前准备
BETA 版冲刺前准备 队名:第三视角 作业链接 组长博客 应作业要求为了更加顺利地开展beta版本的冲刺,上次的alpha版本展示后,我们组对之前开发过程中存在的各种问题进行了全面的讨论,并对其进行 ...
- ACM 第十四天
字符串: 1.KMP算法(模式串达到1e6) 模式串达到1e4直接暴力即可. 字符串哈希 字符串Hash的种类还是有很多种的,不过在信息学竞赛中只会用到一种名为“BKDR Hash”的字符串Hash算 ...