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

2022-07-04 11:33:15 字數 3181 閱讀 5643

目錄:

1.判斷是否為空或者null

2.普通包含模糊查詢

1)以某字串開頭的模糊查詢

2)以某字串結尾的模糊查詢

3)包含某字串的模糊查詢

3.精確到字串對應位數字元的模糊查詢(*重點)

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

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

不錯這也是linq模糊查詢的精髓,一般的模糊查詢用 contains都是可以解決的,特護的精確到字串某一位的迷糊查詢就得另想辦法了,

話不多說,下面一一說下模糊查詢:

先貼出整個查詢,在一一說明,並且把對應的sql語句也會寫出來:

using (srscontext db = new

srscontext())

);var var1 =dt1.tolist();

var dt2 = (from des in

db.modelsvehiclerecognition

where (des.platenum.startswith("

皖a8"

))

select

new );

var var2 =dt2.tolist();

var dt3 = (from des in

db.modelsvehiclerecognition

where (des.platenum.endswith("

68t"

))

select

new );

var var3=dt3.tolist();

var dt4 = (from des in

db.modelsvehiclerecognition

where (des.platenum.contains("a3"

))

select

new );

var var4 =dt4.tolist();

var dt5 = (from des in

db.modelsvehiclerecognition

where (sqlfunctions.patindex("

_a__3%

", des.platenum) > 0

)

select

new );

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

等同於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

等同於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

等同於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

等同於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

等同於select platenum from vehiclerecognition where platenum  like '_a__3%'

說明:'_a__3%' 中的下劃線「_」表示乙個字元,'_a__3%' 這個字串查詢意思就是第二個字元是a,第五個字元是3的字串

因為a和3之間有兩個下劃線「_」所以查詢出的結果也要滿足a和3之間有兩個字元才行,

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

sql查詢中的包含 被包含 模糊查詢

select count from mysqlb client where name like 慶農 可查詢出在name欄位下所有包含 慶農 字樣的記錄 還有一種情況是我們查詢的表中的字段被包含在我們指定的條件中,select count from mysqlb client where name ...

sql 先精確查詢後模糊查詢方法

後來自己研究了charindex函式,發現可實行辦法!場景 公司部門提了個功能需求,要搜尋商品表裡的商品資訊,先左匹配查詢然後模糊查詢 比如 要搜尋襯衫,使用者需要先知道以襯衫 開頭的,然後再去模糊查詢xx襯衫xx,一開始想到使用先精確查詢,然後再模糊查詢,再組合 select from produ...

mysql 模糊查詢(包含 存在)方法

in not in 可以與子查詢一起使用,也可以直接in a,b.exists not exist一般都是與子查詢一起使用 like str 決定匹配位置 like是廣泛的模糊匹配,字串中沒有分隔符 find in set str,strlist select from test where fin...