Like-toiminnon toiminta on vähän kuin Like, mutta suunta on muuttunut. Mitä se tarkoittaa? Annat merkkijonon ja etsit datasta kenttää, joka sisältää tämän merkkijonon. Toisin sanoen annettu merkkijono on kentän osajoukko. SQL scrip{filter}t on kirjoitettu näin.
Selec * taulukosta, jossa id tykkää '%AD%' Selec * taulukosta, jossa id tykkää '%AD' Selec * taulukosta, jossa id 'AD%' Yllä oleva % on villikortti, joka tarkoittaa, että kentällä on arvo, ja tuntematon asema korvataan %:lla. Ensimmäinen on osoittaa, että keskimmäinen osa on AD ja molemmat päät ovat epäselvät. Toinen on AD lopussa, ja edellinen on epäselvä. Kolmas puolestaan alkaa kirjaimella AD ja päättyy epäselvästi. Vastaava Linq-lause on:
var q = (c:stä db:ssä. Asiakkaat missä c.CustomerID.Contains("ROUT") valitse c). ToList(); SQL, jonka se generoi, on
VALITSE [t0]. [CustomerID], [t0]. [Yrityksen nimi], [t0]. [YhteystietoNimi], [t0]. [ContactT itle], [t0]. [Osoite], [t0]. [Kaupunki], [t0]. [Alue], [t0]. [Postinumero], [t0]. [Neuvonantaja try], [t0]. [Puhelin], [t0]. [Faksi] FROM [dbo]. [Asiakkaat] AS [t0] MISSÄ [t0]. [CustomerID] KUIN @p0 -- @p0: Syötemerkkijono (koko = 6; Prec = 0; Asteikko = 0) [%ROUT%] Lopuksi ISSA, pää villi kortti:
var q = (c:stä db:ssä. Asiakkaat missä c.CustomerID.EndsWith("ISSA") valitse c). ToList(); SQL, jonka se generoi, on
VALITSE [t0]. [CustomerID], [t0]. [Yrityksen nimi], [t0]. [YhteystietoNimi], [t0]. [ContactT itle], [t0]. [Osoite], [t0]. [Kaupunki], [t0]. [Alue], [t0]. [Postinumero], [t0]. [Neuvonantaja try], [t0]. [Puhelin], [t0]. [Faksi] FROM [dbo]. [Asiakkaat] AS [t0] MISSÄ [t0]. [CustomerID] KUIN @p0 -- @p0: Syötemerkkijono (koko = 5; Prec = 0; Asteikko = 0) [%ISSA] Aloittaen ARO:sta, häntä villi kortti:
var q = (c:stä db:ssä. Asiakkaat missä c.CustomerID.StartsWith("ARO") valitse c). ToList(); SQL, jonka se generoi, on
VALITSE [t0]. [CustomerID], [t0]. [Yrityksen nimi], [t0]. [YhteystietoNimi], [t0]. [ContactT itle], [t0]. [Osoite], [t0]. [Kaupunki], [t0]. [Alue], [t0]. [Postinumero], [t0]. [Neuvonantaja try], [t0]. [Puhelin], [t0]. [Faksi] FROM [dbo]. [Asiakkaat] AS [t0] MISSÄ [t0]. [CustomerID] KUIN @p0 -- @p0: Syötemerkkijono (koko = 4; Prec = 0; Asteikko = 0) [ARO%]
Linq tarjoaa myös metodin nimeltä SqlMethods.Like, joka vaatii ensin System.Data.Linq.SqlClient -nimiavaruuden lisäämistä. Edellä mainitut kolme voidaan kirjoittaa
var q = (c:stä db:ssä. Asiakkaat missä SqlMethods.Like(c.CustomerID, "%ROUT%") valitse c). ToList(); Tässä sinun täytyy täyttää itse jokerikortti kertoaksesi Linqille, miten sinut yhdistettiin. Mitä esimerkiksi.
var q = (c:stä db:ssä. Asiakkaat missä SqlMethods.Like(c.CustomerID, "%ISSA") valitse c). ToList(); Toinen esimerkki:
var q = (c:stä db:ssä. Asiakkaat missä SqlMethods.Like(c.CustomerID, "ARO%") valitse c). ToList(); Upein asia SqlMethods.Likessa on se, että voit toteuttaa villikortteja missä tahansa omien määritellyjen jokerikorttien avulla. Mitä esimerkiksi.
var q = (c:stä db:ssä. Asiakkaat missä SqlMethods.Like(c.CustomerID, "A%O%T") valitse c). ToList(); SQL, jonka se generoi, on
VALITSE [t0]. [CustomerID], [t0]. [Yrityksen nimi], [t0]. [YhteystietoNimi], [t0]. [ContactT itle], [t0]. [Osoite], [t0]. [Kaupunki], [t0]. [Alue], [t0]. [Postinumero], [t0]. [Neuvonantaja try], [t0]. [Puhelin], [t0]. [Faksi] FROM [dbo]. [Asiakkaat] AS [t0] MISSÄ [t0]. [CustomerID] KUIN @p0 -- @p0: Syötemerkkijono (koko = 5; Prec = 0; Asteikko = 0) [A%O%T]
Tavallisin asia on tietää, että se alkaa A:lla ja päättyy T:hen, tietää arvon O keskellä, eikä tiedä mitään muuta. Käytä vain tätä. SQL Server määrittelee neljä villikorttia, jotka kaikki ovat saatavilla täällä. Ne ovat: Wildcard-merkki Descrip{filter}tion Esimerkki % Mikä tahansa nolla tai useampi merkkijono. MISSÄ otsikko KUTEN '%computer%' löytää kaikki kirjan nimet, joissa sana 'computer' on missä tahansa kirjan nimessä. _ (alleviivaus) Mikä tahansa yksittäinen merkki. WHERE au_fname LIKE '_ean' löytää kaikki nelikirjaimiset etunimet, jotka päättyvät ean-kirjaimella (Dean, Sean jne.). [ ] Mikä tahansa yksittäinen merkki määritellyn alueen ([a-f]) tai joukon ([abcdef]) sisällä. MISSÄ au_lname KUTEN '[C-P]arsen' löytää kirjoittajan sukunimet, jotka päättyvät arseniin ja alkavat millä tahansa yksittäisellä merkillä C:n ja P:n välillä, esimerkiksi Carsen, Larsen, Karsen ja niin edelleen. [^] Mikä tahansa yksittäinen merkki, joka ei ole määritellyllä alueella ([^a-f]) tai joukolla ([^abcdef]). MISSÄ au_lname KUTEN 'de[^l]%', kaikki tekijän sukunimet, jotka alkavat de:llä, ja missä seuraava kirjain ei ole l.
% edustaa nollapituista tai minkä tahansa pituisen merkkijonon. _ tarkoittaa merkkiä. [] tarkoittaa merkkiä tietyllä alueella. [^] tarkoittaa merkkiä, joka ei ole tietyllä alueella Kuten mitä:
var q = (c:stä db:ssä. Asiakkaat missä SqlMethods.Like(c.CustomerID, "A_O_T") valitse c). ToList(); Käytä vain _ esittämään hahmoa. Generoitu SQL on:
VALITSE [t0]. [CustomerID], [t0]. [Yrityksen nimi], [t0]. [YhteystietoNimi], [t0]. [ContactT itle], [t0]. [Osoite], [t0]. [Kaupunki], [t0]. [Alue], [t0]. [Postinumero], [t0]. [Neuvonantaja try], [t0]. [Puhelin], [t0]. [Faksi] FROM [dbo]. [Asiakkaat] AS [t0] MISSÄ [t0]. [CustomerID] KUIN @p0 -- @p0: Syötemerkkijono (koko = 5; Prec = 0; Asteikko = 0) [A_O_T]
Not Likessa se on myös hyvin yksinkertaista, lisää vain hölynpölyä.
var q = (c:stä db:ssä. Asiakkaat missä! SqlMethods.Like(c.CustomerID, "A_O_T") valitse c). ToList();
SqlMethods.Like:ssa on myös parametri nimeltä escape character, joka käännetään seuraavaksi lauseeksi.
VALITSE sarakkeet taulukosta MISSÄ sarake LIKE '%\%%' ESCAPE '\' Escape johtuu siitä, että kentällä on erikoismerkkejä, kuten %,_ [ ], joita käytetään villikorteina. Tässä kohtaa Escape astuu kuvaan. Tämä on SQL Server -juttu.
|