PostgreSQL LIKE, Not Like, zamjenski znakovi (%, _ ) Primjeri

โšก Pametni saลพetak

PostgreSQL LIKE pronalazi tekst u uzorcima pomoฤ‡u dva zamjenska znaka - znaka postotka i podvlake. Ovaj vodiฤ pokazuje kako koristiti LIKE i NOT LIKE u SELECT naredbama, s razraฤ‘enim primjerima psql i pgAdmin za svaki sluฤaj.

  • ๐Ÿ” srลพ Operator: LIKE usporeฤ‘uje stupac ili izraz s uzorkom zamjenskog znaka i vraฤ‡a true ako se podudara.
  • ๐ŸŒŸ Dva dลพoker znaka: % odgovara nula ili viลกe znakova; _ odgovara toฤno jednom znaku.
  • โœ‹ Inverzno podudaranje: Kombinirajte NOT s LIKE kako biste vratili retke koji to ฤine ne uskladiti s uzorkom.
  • ๐Ÿ› ๏ธ Dva suฤelja: Iste upite pokrenite iz naredbenog retka psql ili grafiฤki unutar pgAdmina.
  • ๐ŸŽฏ Znak za izlaz: Koristite ESCAPE klauzulu za usklaฤ‘ivanje doslovnih znakova % ili _ unutar uzorka.
  • ๐Ÿค– Poboljลกanje umjetne inteligencije: Alati umjetne inteligencije za baze podataka prevode potrebe pretraลพivanja jednostavnim jezikom u LIKE obrasce i predlaลพu ILIKE kada je potrebno podudaranje koje ne razlikuje velika i mala slova.

PostgreSQL LIKE, Not Like, zamjenski znakovi (%, _ ) Primjeri

The PostgreSQL LIKE Operator usporeฤ‘uje tekstualne vrijednosti s uzorcima pomoฤ‡u zamjenskih znakova. Ako se izraz za pretraลพivanje podudara s uzorkom, LIKE vraฤ‡a trueZamjenski znakovi rade u WHERE klauzula SELECT, UPDATE, INSERT, ili DELETE.

ล to su PostgreSQL Zamjenski znakovi?

PostgreSQL podrลพava dva LIKE zamjenska znaka:

  • Znak postotka (%): odgovara nula, jedan ili viลกe znakova ili znamenki.
  • Podcrta (_): odgovara toฤno jednom znaku ili znamenki.

Dva simbola mogu se kombinirati unutar istog uzorka. Ako se LIKE koristi bez zamjenskog znaka, ponaลกa se kao znak jednakosti (=) operator.

PostgreSQL Sintaksa LIKE

Osnovna LIKE sintaksa je:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • izraลพavanje โ€” znakovni izraz, obiฤno naziv stupca ili polja.
  • uzorak โ€” znakovni izraz koji sadrลพi zamjenske znakove.
  • znak za izlaz โ€” neobavezno. Omoguฤ‡uje vam doslovno podudaranje % or _ znakova. Kada se izostavi, obrnuta kosa crta (\) je zadani escape znak.

PostgreSQL KAO s % zamjenskim znakom

The % znak odgovara nula, jednom ili viลกe znakova. Razmotrite sljedeฤ‡e Book stol:

Primjer tablice Book koriลกtene u LIKE primjerima

Da biste pronaลกli knjige ฤiji naziv poฤinje s "Lear", pokrenite donji upit.

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

Upit vraฤ‡a:

Rezultat upita LIKE Lear% vraฤ‡a odgovarajuฤ‡e knjige

Da biste pronaลกli knjige ฤiji naziv sadrลพi rijeฤ "od" bilo gdje:

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

Upit vraฤ‡a:

Rezultat upita LIKE %by% s odgovarajuฤ‡im knjigama

PostgreSQL KAO s _ zamjenskim znakom

The _ znak odgovara toฤno jednom znaku. Sljedeฤ‡i upit pronalazi imena gdje je prvi znak bilo koje jedno slovo, nakon ฤega slijedi "earn" i zatim bilo koji sufiks:

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

Upit vraฤ‡a:

Rezultat upita LIKE _earn% s podudaranjima prefiksa od jednog znaka

Drugi primjer - pronaฤ‘ite bilo koji tekst koji zavrลกava s "Poฤetnik" plus joลก jedan znak:

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

Upit vraฤ‡a:

LIKE %Beginner_ rezultat upita koji odgovara jednom zavrลกnom znaku

PostgreSQL NE SVIฤA MI SE Operahumka

Kombinirajte LIKE s NOT kako biste vratili retke koji to ฤine ne uskladite uzorak. Na primjer, navedite sve knjige ฤije ime ne poฤinje s โ€žPostโ€œ:

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

Upit vraฤ‡a:

NE SVIฤA SE Post% rezultat iskljuฤujuฤ‡i knjige koje poฤinju s Post

Samo jedna knjiga zadovoljava uvjet. Sada navedite sve knjige ฤiji naziv zadovoljava ne sadrลพe rijeฤ โ€žNapravljenoโ€œ:

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

Upit vraฤ‡a:

NE KAO %Made% rezultat vraฤ‡a tri odgovarajuฤ‡e knjige

Tri reda zadovoljavaju uvjet.

Koriลกtenje LIKE-a s pgAdminom

Isti upiti mogu se pokrenuti i grafiฤki unutar pgAdminovog alata za upite.

% Zamjenski znak u pGadminu

Korak 1) Prijavite se u pgAdmin.

Korak 2) U navigacijskoj traci s lijeve strane kliknite Baze podataka, a zatim kliknite Demo.

Navigacijsko stablo pgAdmin s proลกirenim bazama podataka i demo verzijom

Korak 3) Upiลกite upit u Ureฤ‘ivaฤ upita:

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

Korak 4) Kliknite Izvrลกiti.

Alat za upite pgAdmin s gumbom Izvrลกi na alatnoj traci

Okno s rezultatima prikazuje odgovarajuฤ‡e knjige:

pgAdmin okno s rezultatima za upit LIKE Lear%

Za pretraลพivanje knjige koja ima rijeฤ "od" bilo gdje u nazivu:

Korak 1) U ureฤ‘ivaฤ upita upiลกite sljedeฤ‡e:

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

Korak 2) Kliknite Izvrลกiti.

Alat za upite pgAdmin izvodi upit LIKE %by%

Okno s rezultatima prikazuje:

pgAdmin okno s rezultatima za upit LIKE %by%

_ Zamjenski znak u pgAdminu

Korak 1) Prijavite se u pgAdmin.

Korak 2) U navigacijskoj traci s lijeve strane kliknite Baze podataka, a zatim kliknite Demo.

Navigacijsko stablo pgAdmin koje prikazuje stablo baza podataka

Korak 3) Upiลกite upit u Ureฤ‘ivaฤ upita:

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

Korak 4) Kliknite Izvrลกiti.

Alat za upite pgAdmin pokreฤ‡e upit LIKE _earn%

Okno s rezultatima prikazuje:

pgAdmin okno s rezultatima za upit LIKE _earn%

Korak 5) Pokrenite drugi primjer:

  1. Upiลกite upit u Ureฤ‘ivaฤ upita:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Kliknite Izvrลกiti.

Alat za upite pgAdmin izvodi se KAO upit %Beginner_

Okno s rezultatima prikazuje:

pgAdmin rezultatni okvir za upit LIKE %Beginner_

NIJE KAO u pgAdminu

Korak 1) Prijavite se u pgAdmin.

Korak 2) U navigacijskoj traci s lijeve strane kliknite Baze podataka, a zatim kliknite Demo.

pgAdmin navigacijsko stablo za primjer NOT LIKE

Korak 3) Za popis svih knjiga ฤije ime ne poฤinje s "Post", upiลกite:

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

Korak 4) Kliknite Izvrลกiti.

Alat za upite pgAdmin izvodi se NOT LIKE Post% upit

Okno s rezultatima prikazuje:

pgAdmin rezultatni okvir za upit NOT LIKE Post%

Dodatni detalji rezultata pgAdmin za upit NOT LIKE

Za popis knjiga ฤiji naziv ne sadrลพi rijeฤ โ€žMadeโ€œ:

Korak 1) U ureฤ‘ivaฤ upita upiลกite sljedeฤ‡e:

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

Korak 2) Kliknite Izvrลกiti.

Alat za upite pgAdmin izvodi se NOT LIKE upit %Made%

Okno s rezultatima prikazuje:

pgAdmin rezultatni okvir za upit NOT LIKE %Made%

Preuzmite bazu podataka koriลกtenu u ovom tutorialu.

Pitanja i odgovori

LIKE razlikuje velika i mala slova, dok ILIKE izvodi podudaranje koje nije osjetljivo na velika i mala slova. ILIKE je PostgreSQL ekstenzija. Na primjer, naziv ILIKE 'lear%' podudara se s "Learn" i "LEAR". Koristite ILIKE kada je unos korisnika nepredvidiv.

Upotrijebite ESCAPE klauzulu za deklariranje escape znaka, a zatim dodajte prefiks doslovnog zamjenskog znaka. Na primjer, WHERE kod LIKE '50!%%' ESCAPE '!' pronalazi vrijednosti koje poฤinju s "50%" jer uskliฤnik izbjegava znak postotka.

Koristite LIKE za jednostavna podudaranja prefiksa, sufiksa ili podniza. Prebacite se na POSIX regex (~ i ~*) kada su vam potrebne klase znakova, alternacija ili kvantifikatori. Regex je moฤ‡niji, ali obiฤno sporiji od LIKE za osnovne obrasce.

Da. AI Pomoฤ‡nici poput kopilota za pretvorbu teksta u SQL prevode upute poput โ€žpronaฤ‘i kupce ฤija e-poลกta sadrลพi acmeโ€œ u ime LIKE '%acme%' i objaลกnjavaju logiku zamjenskih znakova, ubrzavajuฤ‡i ad-hoc izvjeลกtavanje.

Generativna umjetna inteligencija pregledava plan upita, preporuฤuje trigramski indeks (pg_trgm) za LIKE pretraลพivanja s vodeฤ‡im zamjenskim znakovima i prepisuje obrasce koji sprjeฤavaju koriลกtenje indeksa. To pretvara skeniranje cijele tablice u milisekundne pretrage na velikim PostgreSQL tablice.

Saลพmite ovu objavu uz: