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

linq大家肯定用過呈野,對于其中的模糊查詢肯定也有所了解

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

不錯這也是linq模糊查詢的精髓智亮,一般的模糊查詢用 Contains都是可以解決的毅厚,特護(hù)的精確到字符串某一位的迷糊查詢就得另想辦法了秃流,話不多說碳默,下面一一說下模糊查詢:

先貼出整個查詢,在一一說明疮绷,并且把對應(yīng)的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("皖A(yù)8"))
                           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();               
            }

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("皖A(yù)8") ————————>sql server 的 like '皖A(yù)8%'

from des in db.ModelsVehicleRecognition where (des.PlateNum.StartsWith("皖A(yù)8")) select new { plateMun = des.PlateNum }

等同于

SELECT PlateNum FROM VehicleRecognition WHERE PlateNum like '皖A(yù)8%'

2)以某字符串結(jié)尾的模糊查詢

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.精確到字符串對應(yīng)位數(shù)字符的模糊查詢(*重點)

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之間有兩個下劃線“_”所以查詢出的結(jié)果也要滿足a和3之間有兩個字符才行肆资,

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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末郑原,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子夜涕,更是在濱河造成了極大的恐慌犯犁,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件崖堤,死亡現(xiàn)場離奇詭異啸盏,居然都是意外死亡癣漆,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評論 3 392
  • 文/潘曉璐 我一進(jìn)店門涣澡,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人丧诺,你說我怎么就攤上這事入桂。” “怎么了驳阎?”我有些...
    開封第一講書人閱讀 162,931評論 0 353
  • 文/不壞的土叔 我叫張陵抗愁,是天一觀的道長。 經(jīng)常有香客問我呵晚,道長蜘腌,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評論 1 292
  • 正文 為了忘掉前任饵隙,我火速辦了婚禮撮珠,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘金矛。我一直安慰自己劫瞳,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,234評論 6 388
  • 文/花漫 我一把揭開白布绷柒。 她就那樣靜靜地躺著志于,像睡著了一般。 火紅的嫁衣襯著肌膚如雪废睦。 梳的紋絲不亂的頭發(fā)上伺绽,一...
    開封第一講書人閱讀 51,198評論 1 299
  • 那天,我揣著相機(jī)與錄音,去河邊找鬼奈应。 笑死澜掩,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的杖挣。 我是一名探鬼主播肩榕,決...
    沈念sama閱讀 40,084評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼惩妇!你這毒婦竟也來了株汉?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評論 0 274
  • 序言:老撾萬榮一對情侶失蹤歌殃,失蹤者是張志新(化名)和其女友劉穎乔妈,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氓皱,經(jīng)...
    沈念sama閱讀 45,341評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡路召,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,563評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了波材。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片股淡。...
    茶點故事閱讀 39,731評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖廷区,靈堂內(nèi)的尸體忽然破棺而出唯灵,到底是詐尸還是另有隱情,我是刑警寧澤躲因,帶...
    沈念sama閱讀 35,430評論 5 343
  • 正文 年R本政府宣布早敬,位于F島的核電站,受9級特大地震影響大脉,放射性物質(zhì)發(fā)生泄漏搞监。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,036評論 3 326
  • 文/蒙蒙 一镰矿、第九天 我趴在偏房一處隱蔽的房頂上張望琐驴。 院中可真熱鬧,春花似錦秤标、人聲如沸绝淡。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽牢酵。三九已至,卻和暖如春衙猪,著一層夾襖步出監(jiān)牢的瞬間馍乙,已是汗流浹背布近。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留丝格,地道東北人撑瞧。 一個月前我還...
    沈念sama閱讀 47,743評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像显蝌,于是被迫代替她去往敵國和親预伺。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,629評論 2 354

推薦閱讀更多精彩內(nèi)容