PostgreSQL LIKE, Not Like, Jokerimerkit (%, _ ) Esimerkkejä

⚡ Älykäs yhteenveto

PostgreSQL LIKE yhdistää tekstin kuvioihin käyttämällä kahta jokerimerkkiä – prosenttimerkkiä ja alaviivaa. Tämä tutoriaali näyttää, miten LIKE- ja NOT LIKE-operaattoreita käytetään SELECT-lausekkeissa, ja kussakin tapauksessa on toimivia psql- ja pgAdmin-esimerkkejä.

  • 🔍 Ydin Operator: LIKE vertaa saraketta tai lauseketta jokerimerkkikuvioon ja palauttaa arvon true, jos osuma on osuma.
  • 🌟 Kaksi jokerimerkkiä: % vastaa nollaa tai useampaa merkkiä; _ vastaa täsmälleen yhtä merkkiä.
  • Käänteinen ottelu: Yhdistä NOT ja LIKE palauttaaksesi rivit, jotka eivät emme sovita kuvio.
  • 🛠️ Kaksi käyttöliittymää: Suorita samat kyselyt psql-komentoriviltä tai graafisesti pgAdminissa.
  • 🎯 Pakohahmo: Käytä ESCAPE-lauseketta löytääksesi literaali-% tai _ -merkkejä kuvion sisällä.
  • 🤖 AI Boost: Tekoälytietokantatyökalut kääntävät selkokieliset hakutarpeet LIKE-malleiksi ja ehdottavat ILIKE-mallia, kun tarvitaan kirjainkokoa riippumatonta vastaavuutta.

PostgreSQL LIKE, Not Like, Jokerimerkit (%, _ ) Esimerkkejä

PostgreSQL LIKE operaattori vertaa tekstiarvoja kuvioihin käyttämällä jokerimerkkejä. Jos hakulauseke vastaa kuviota, LIKE palauttaa arvon trueJokerimerkit toimivat WHERE lauseke SELECT, UPDATE, INSERTtai DELETE.

Mitä ovat PostgreSQL Jokerimerkit?

PostgreSQL tukee kahta LIKE-jokerimerkkiä:

  • Prosenttimerkki (%): vastaa nollaa, yhtä tai useampaa merkkiä tai numeroa.
  • Alleviivaus (_): vastaa täsmälleen yhtä merkkiä tai numeroa.

Nämä kaksi symbolia voidaan yhdistää saman kuvion sisällä. Jos LIKE-operaattoria käytetään ilman jokerimerkkiä, se toimii kuten yhtäsuuruusmerkki (=) -operaattori.

PostgreSQL LIKE-syntaksi

LIKE-syntaksi on seuraava:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • lauseke — merkkijono, tyypillisesti sarakkeen tai kentän nimi.
  • kuvio — merkkijono, joka sisältää jokerimerkkejä.
  • pakomerkki — valinnainen. Voit yhdistää literaalin % or _ merkkiä. Jos kenoviiva ( jätetään pois,\) on oletusarvoinen ohjausmerkki.

PostgreSQL TYKKÄÄ %-jokerimerkillä

% merkki vastaa nollaa, yhtä tai useampaa merkkiä. Tarkastellaan seuraavaa Book taulukossa:

LIKE-esimerkeissä käytetty esimerkkikirjataulukko

Löydät kirjoja, joiden nimi alkaa kirjaimilla ”Lear”, suorittamalla alla olevan kyselyn.

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Kysely palauttaa:

LIKE Lear% -kyselyn tulos, joka palauttaa vastaavat kirjat

Kirjojen etsiminen, joiden nimessä on sana "by" missä tahansa:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Kysely palauttaa:

TYKKÄÄ %by% -kyselyn tuloksesta, jossa on vastaavat kirjat

PostgreSQL KUTEN _-jokerimerkin kanssa

_ merkki vastaa täsmälleen yhtä merkkiä. Seuraava kysely löytää nimiä, joissa ensimmäinen merkki on mikä tahansa yksittäinen kirjain, jota seuraa ”ansaita” ja sitten mikä tahansa pääte:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Kysely palauttaa:

LIKE _earn% -kyselyn tulos, jossa on yhden merkin etuliiteosumia

Toinen esimerkki – etsi mikä tahansa teksti, joka päättyy sanaan ”Aloittelija” ja yhteen lisämerkkiin:

SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';

Kysely palauttaa:

KUTEN %Beginner_-kyselyn tulos vastaa yhtä viimeistä merkkiä

PostgreSQL EI NIIN KUIN OperaTor

Yhdistä LIKE ja NOT palauttaaksesi rivit, jotka eivät vastaa emme vastaa kaavaa. Esimerkiksi listaa kaikki kirjat, joiden nimi ei ala kirjaimilla ”Post”:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Kysely palauttaa:

NOT LIKE Post% -tulos, josta on poistettu kirjat, jotka alkavat Post-kirjaimilla

Vain yksi kirja täyttää ehdon. Listaa nyt kaikki kirjat, joiden nimi täyttää ehdon. emme sisältävät sanan ”Valmistettu”:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Kysely palauttaa:

NOT LIKE %Made% -tulos palauttaa kolme vastaavaa kirjaa

Kolme riviä täyttää ehdon.

LIKE-funktion käyttö pgAdminin kanssa

Samat kyselyt voidaan suorittaa myös graafisesti pgAdminin kyselytyökalussa.

% Jokerimerkki pgAdminissa

Vaihe 1) Kirjaudu sisään pgAdminiin.

Vaihe 2) Napsauta vasemmalla olevasta navigointipalkista Tietokannat, napsauta sitten esittely.

pgAdmin-navigointipuu, jossa tietokannat ja demo laajennettuna

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT *
FROM
   Book
WHERE
   name LIKE 'Lear%';

Vaihe 4) Napauta Suorittaa.

pgAdmin-kyselytyökalu ja Suorita-työkalurivin painike

Tulospaneeli näyttää vastaavat kirjat:

pgAdminin tulosruutu LIKE Lear% -kyselylle

Kirjan etsiminen, jonka nimessä on sana ”by”:

Vaihe 1) Kirjoita kyselyeditoriin seuraava:

SELECT *
FROM
   Book
WHERE
   name LIKE '%by%';

Vaihe 2) Napauta Suorittaa.

pgAdmin-kyselytyökalu, joka toimii LIKE %by% -kyselynä

Tulospaneeli näyttää:

pgAdminin tulosruutu LIKE %by% -kyselylle

_ Jokerimerkki pgAdminissa

Vaihe 1) Kirjaudu sisään pgAdminiin.

Vaihe 2) Napsauta vasemmalla olevasta navigointipalkista Tietokannat, napsauta sitten esittely.

pgAdmin-navigointipuu, joka näyttää tietokantapuun

Vaihe 3) Kirjoita kysely kyselyeditoriin:

SELECT *
FROM
   Book
WHERE
   name LIKE '_earn%';

Vaihe 4) Napauta Suorittaa.

pgAdmin-kyselytyökalu, jossa on LIKE _earn% -kysely

Tulospaneeli näyttää:

pgAdminin tulosruutu LIKE _earn% -kyselylle

Vaihe 5) Suorita toinen esimerkki:

  1. Kirjoita kysely kyselyeditoriin:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Napauta Suorittaa.

pgAdmin-kyselytyökalu, joka toimii LIKE-muodossa %Beginner_ query

Tulospaneeli näyttää:

pgAdminin tulosruutu LIKE %Beginner_ -kyselylle

EI KUTEN pgAdminissa

Vaihe 1) Kirjaudu sisään pgAdminiin.

Vaihe 2) Napsauta vasemmalla olevasta navigointipalkista Tietokannat, napsauta sitten esittely.

pgAdminin navigointipuu NOT LIKE -esimerkille

Vaihe 3) Jos haluat listata kaikki kirjat, joiden nimi ei ala kirjaimilla ”Post”, kirjoita:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE 'Post%';

Vaihe 4) Napauta Suorittaa.

pgAdmin-kyselytyökalu, joka ei toimi Post% -kyselyn tavoin

Tulospaneeli näyttää:

pgAdminin tulosruutu NOT LIKE Post% -kyselylle

Lisätietoja pgAdmin-tuloksesta NOT LIKE -kyselylle

Listaaksesi kirjoja, joiden nimessä ei ole sanaa ”Made”:

Vaihe 1) Kirjoita kyselyeditoriin seuraava:

SELECT *
FROM
   Book
WHERE
   name NOT LIKE '%Made%';

Vaihe 2) Napauta Suorittaa.

pgAdmin-kyselytyökalu, joka ei toimi kyselyn %Made% mukaisesti

Tulospaneeli näyttää:

pgAdminin tulosruutu NOT LIKE %Made% -kyselylle

Lataa tässä opetusohjelmassa käytetty tietokanta.

UKK

LIKE on kirjainkokoriippuvainen, kun taas ILIKE suorittaa kirjainkokoriippumatonta vertailua. ILIKE on PostgreSQL laajennus. Esimerkiksi nimi ILIKE 'lear%' vastaa sekä ”Learn” että ”LEAR”. Käytä ILIKE-funktiota, kun käyttäjän syötteen kirjainkokoa ei voida ennustaa.

Käytä ESCAPE-lauseketta määrittääksesi koodinvaihtomerkin ja lisää sitten literaalin jokerimerkin etuliitteeksi. Esimerkiksi WHERE-koodi LIKE '50!%%' ESCAPE '!' löytää arvot, jotka alkavat merkeillä ”50%”, koska huutomerkki korvaa prosenttimerkin.

Käytä LIKE-lauseketta yksinkertaisiin etuliitteiden, jälkiliitteiden tai alimerkkijonojen vastineisiin. Vaihda POSIX-säännölliseen lausekkeeseen (~ ja ~*), kun tarvitset merkistöluokkia, vuorottelua tai kvanttoreita. Säännöllinen lauseke on tehokkaampi, mutta tyypillisesti hitaampi kuin LIKE perusmallien kanssa.

Kyllä. AI Assistantit, kuten tekstistä SQL:ään -kopiopilotit, kääntävät kehotteet, kuten ”etsi asiakkaita, joiden sähköposti sisältää acme”, nimeksi LIKE '%acme%' ja selittävät jokerimerkkilogiikan, mikä nopeuttaa ad-hoc-raportointia.

Generatiivinen tekoäly tarkastaa kyselysuunnitelman, suosittelee trigrammi-indeksiä (pg_trgm) jokerimerkkejä käyttäville LIKE-hauille ja kirjoittaa uudelleen mallit, jotka estävät indeksien käytön. Tämä muuttaa koko taulukon skannaukset millisekunnin hauiksi suurissa taulukoissa. PostgreSQL taulukoita.

Tiivistä tämä viesti seuraavasti: