zoukankan      html  css  js  c++  java
  • 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) > 0)
                                 select new { plateMun=des.PlateNum});
                    var var5 = dt5.ToList();               
                }
    View Code

    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之间有两个字符才行,

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

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

  • 相关阅读:
    C语言ll作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I博客作业10
    第三章预习笔记-运算方法和运算部件
    非数值数据的编码表示
  • 原文地址:https://www.cnblogs.com/sxw117886/p/5718367.html
Copyright © 2011-2022 走看看