Linq的模糊查詢(包含精確模糊查詢)

来源:http://www.cnblogs.com/sxw117886/archive/2016/07/29/5718367.html
-Advertisement-
Play Games

目錄: 1.判斷是否為空或者null 2.普通包含模糊查詢 1)以某字元串開頭的模糊查詢 2)以某字元串結尾的模糊查詢 3)包含某字元串的模糊查詢 3.精確到字元串對應位數字元的模糊查詢(*重點) linq大家肯定用過,對於其中的模糊查詢肯定也有所瞭解 提起linq的模糊查詢首先大家想到的肯定是 C ...


目錄:

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之間有兩個字元才行,

       也就是說兩個精確字元之間隔了幾個字元,在查詢的時候就要寫幾個下劃線“_”。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • rows 是客戶端傳過來的行數,page是頁碼,傳參就需要就兩個參數就行,sql語句中_row 和_page 自己聲明的局部變數,值還是相應的row 和page ,為了運算而已。 用資料庫類獲得它的DataTable,轉換為json格式通過一般處理程式傳到客戶端,客戶端顯示就ok了。這裡我使用的是e ...
  • 說明:本文是個人翻譯文章,由於個人水平有限,有不對的地方請大家幫忙更正。 原文: "dotnet restore" 翻譯: "dotnet restore" 名稱 還原一個項目的依賴項和工具 概要 `dotnet restore [ source] [ packages] [ disable par ...
  • ...
  • 寫這點東西主要是看到知乎上有人在討論相關的問題,但是有不少人都在說一些不嚴謹,甚至是完全錯誤 但是流傳甚廣的東西,甚至是一些大神都在說,以下根據我的回答總結。 一個很常見又很低級的誤區是:認為引用類型保存在堆上,值類型保存在棧上……其實這個問題幼稚得我懶得說……但是實在又忍不住吐槽。 很多人都在說這 ...
  • 開篇 每一個版本的.net都會引入一些新的特性,這些特性方便開發人員能夠快速實現一些功能。雖然.net版本一直在更新,但是新版本對舊版本的程式都是相容的,在這一點上微軟做的還是非常好的。每次學一個新內容,第一次接觸的方法在腦海裡占的位置還是比較重要的,從剛開始接觸.net的多線程編程是使用Threa ...
  • Ajax製作智能提示搜索[js效果,後續博客園會更下麵顯示的部分,只是一個簡單的搜索結果,真正的大型網站用的是lucene全文搜索引擎。 歡迎關註博客園wangwangwangMax, 新浪:NewITdog, 微信公眾號:wangwangwangMax ...
  • 初入碼田--ASP.NET MVC4 Web應用開發之一 實現簡單的登錄 初入碼田--ASP.NET MVC4 Web應用開發之二 實現簡單的增刪改查 2016-07-29 在次之前,需要一臺電腦(~ ̄▽ ̄)~,以及Visual Studio 2013或者更高版本,SQL Sever資料庫(暫時不用 ...
  • 當我們在後臺得到一個字元串後比如字元串內容是:哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 我們要在每兩個或者多個加入一個逗號或者一個分號時候,這個時候很多人都想的是迴圈,這個確實也不錯,但是在迴圈的基礎上呢,大家都知道C#中有一個字元 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...