Like darbība ir mazliet līdzīga, bet virziens ir mainījies. Ko tas nozīmē? Jūs piešķirat virkni un meklējiet lauku datos, kas satur šo virkni. Tas nozīmē, ka dotā virkne ir lauka apakškopa. Sql scrip{filter}t ir rakstīts šādi.
Selec * no tabulas, kur id, piemēram, '%AD%' Selec * no tabulas, kur id, piemēram, '%AD' Selec * no tabulas, kur id kā 'AD%' Iepriekš minētais % ir aizstājējzīme, kas norāda, ka laukā ir vērtība, un nezināmā pozīcija tiek aizstāta ar %. Pirmais ir norādīt, ka vidējā daļa ir AD, un abi gali ir neskaidri. Otrais ir AD beigās, un iepriekšējais nav skaidrs. Trešais, gluži pretēji, sākas ar AD un beidzas neskaidri. Atbilstošais Linq paziņojums ir:
var q = (no c db. Klienti kur c.CustomerID.Contains("ROUT") atlasiet c). ToList(); Tās ģenerētais SQL ir
ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss] NO [dbo]. [Klienti] AS [t0] KUR [t0]. [Klienta ID] PATĪK @p0 -- @p0: ievades virkne (izmērs = 6; Prec = 0; Mērogs = 0) [%ROUT%] Beidzot ar ISSA, galvas aizstājējzīme:
var q = (no c db. Klienti kur c.CustomerID.EndsWith("ISSA") atlasiet c). ToList(); Tās ģenerētais SQL ir
ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss] NO [dbo]. [Klienti] AS [t0] KUR [t0]. [Klienta ID] PATĪK @p0 -- @p0: ievades virkne (izmērs = 5; Prec = 0; Mērogs = 0) [%ISSA] Sākot ar ARO, astes aizstājējzīme:
var q = (no c db. Klienti kur c.CustomerID.StartsWith("ARO") atlasiet c). ToList(); Tās ģenerētais SQL ir
ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss] NO [dbo]. [Klienti] AS [t0] KUR [t0]. [Klienta ID] PATĪK @p0 -- @p0: ievades virkne (izmērs = 4; Prec = 0; Mērogs = 0) [ARO%]
Linq nodrošina arī metodi ar nosaukumu SqlMethods.Like, kurai vispirms jāpievieno System.Data.Linq.SqlClient nosaukumtelpa. Iepriekš minētos trīs var uzrakstīt
var q = (no c db. Klienti kur SqlMethods.Like(c.CustomerID, "%ROUT%") atlasiet c). ToList(); Šeit jums pašam jāaizpilda aizstājējzīme, lai pastāstītu Linq, kā jūs atbilstat. Piemēram, kas
var q = (no c db. Klienti kur SqlMethods.Like(c.CustomerID, "%ISSA") atlasiet c). ToList(); Vēl viens piemērs:
var q = (no c db. Klienti kur SqlMethods.Like(c.CustomerID, "ARO%") atlasiet c). ToList(); Vispārsteidzošākais par SqlMethods.Like ir tas, ka jūs varat ieviest aizstājējzīmes jebkurā vietā ar savām definētajām aizstājējzīmju izteiksmēm. Piemēram, kas
var q = (no c db. Klienti kur SqlMethods.Like(c.CustomerID, "A%O%T") atlasiet c). ToList(); Tās ģenerētais SQL ir
ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss] NO [dbo]. [Klienti] AS [t0] KUR [t0]. [Klienta ID] PATĪK @p0 -- @p0: ievades virkne (izmērs = 5; Prec = 0; Mērogs = 0) [A%O%T]
Visstandarta lieta ir zināt, ka tas sākas ar A un beidzas ar T, zina vērtību O vidū un nezina neko citu. Vienkārši izmantojiet šo. SQL Server definē četras aizstājējzīmes, kuras visas ir pieejamas šeit. Tie ir: Aizstājējzīmes Descrip{filter}tion piemērs % Jebkura virkne, kas sastāv no nulles vai vairāk rakstzīmēm. KUR nosaukums LIKE '%dators%' atrod visus grāmatu nosaukumus ar vārdu 'dators' jebkurā vietā grāmatas nosaukumā. _ (pasvītrojums) Jebkura atsevišķa rakstzīme. KUR au_fname PIEMĒRAM, "_ean" atrod visus četru burtu vārdus, kas beidzas ar ean (Dean, Sean utt.). [ ] Jebkura atsevišķa rakstzīme norādītajā diapazonā ([a-f]) vai komplektā ([abcdef]). KUR au_lname PIEMĒRAM "[C-P]arsen" atrod autora uzvārdus, kas beidzas ar arsen un sākas ar jebkuru atsevišķu rakstzīmi starp C un P, piemēram, Carsen, Larsen, Karsen utt. [^] Jebkura atsevišķa rakstzīme, kas neietilpst norādītajā diapazonā ([^a-f]) vai komplektā ([^abcdef]). KUR au_lname PIEMĒRAM 'de[^l]%' visi autoru uzvārdi, kas sākas ar de un kur nākamais burts nav l.
% apzīmē virkni, kuras garums ir nulle vai jebkurš garums. _ norāda rakstzīmi. [] norāda rakstzīmi diapazona diapazonā. [^] norāda rakstzīmi, kas neatrodas noteiktā diapazonā Piemēram, kas:
var q = (no c db. Klienti kur SqlMethods.Like(c.CustomerID, "A_O_T") atlasiet c). ToList(); Vienkārši izmantojiet _, lai attēlotu rakstzīmi. Ģenerētais SQL ir:
ATLASIET [t0]. [Klienta ID], [t0]. [Uzņēmuma nosaukums], [t0]. [KontaktpersonasVārds], [t0]. [Sazinieties ar itle], [t0]. [Adrese], [t0]. [Pilsēta], [t0]. [Reģions], [t0]. [Pasta indekss], [t0]. [Kuns mēģiniet], [t0]. [Tālrunis], [t0]. [Fakss] NO [dbo]. [Klienti] AS [t0] KUR [t0]. [Klienta ID] PATĪK @p0 -- @p0: ievades virkne (izmērs = 5; Prec = 0; Mērogs = 0) [A_O_T]
Par Not Like, tas ir arī ļoti vienkārši, vienkārši pievienojiet muļķības.
var q = (no c db. Klienti kur ! SqlMethods.Like(c.CustomerID, "A_O_T") atlasiet c). ToList();
SqlMethods.Like ir arī parametrs, ko sauc par aizbēgšanas rakstzīmi, kas tiks pārvērsts šādā paziņojumā.
ATLASĪT kolonnas NO tabulas KUR kolonna LIKE '%\%%' ESCAPE '\' Aizbēgšana ir tāpēc, ka laukā ir speciālās rakstzīmes, piemēram, %,_ [ ], kas tiek izmantotas kā aizstājējzīmes. Šeit ienāk Escape. Šī ir SQL Server lieta.
|