PostgreSQL LIKE, Not Like, Metamärgid (%, _ ) Näited
⚡ Nutikas kokkuvõte
PostgreSQL LIKE leiab teksti mustritega vasteid kahe metamärgi – protsendimärgi ja alakriipsu – abil. See õpetus näitab, kuidas kasutada LIKE'i ja NOT LIKE'i SELECT-lausetes, tuues iga juhtumi jaoks näiteid töötatud psql-ist ja pgAdminitest.
. PostgreSQL SAMASUGUNE operaator sobitab tekstiväärtusi mustritega metamärkide abil. Kui otsinguavaldis vastab mustrile, tagastab LIKE väärtuse. trueMetamärgid toimivad WHERE klausel SELECT, UPDATE, INSERTvõi DELETE.
Mis on PostgreSQL Metamärgid?
PostgreSQL toetab kahte LIKE metamärki:
- Protsendimärk (
%): sobib nulli, ühe või mitme tähemärgi või numbriga. - Allajoon (
_): vastab täpselt ühele tähemärgile või numbrile.
Neid kahte sümbolit saab sama mustri sees kombineerida. Kui LIKE-i kasutatakse ilma kummagi metamärgita, käitub see nagu võrdusmärk (=) operaator.
PostgreSQL LIKE süntaks
LIKE'i põhisüntaks on:
expression LIKE pattern [ ESCAPE 'escape-character' ]
- väljend — märgiavaldis, tavaliselt veeru- või väljanimi.
- muster — metamärke sisaldav märgiavaldis.
- põgenemiskarakter — valikuline. Võimaldab leida literaali vastet
%or_tähemärke. Kui kaldkriips ( puudub\) on vaikimisi kasutatav põgenemismärk.
PostgreSQL NAGU % metamärgiga
. % märk vastab nullile, ühele või enamale tähemärgile. Vaatleme järgmist Book tabelis:
Raamatute leidmiseks, mille nimi algab tähtedega „Lear”, käivitage allolev päring.
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
Päring tagastab:
Raamatute leidmiseks, mille nimi sisaldab suvalist sõna „by”:
SELECT *
FROM
Book
WHERE
name LIKE '%by%';
Päring tagastab:
PostgreSQL NAGU _ metamärgiga
. _ märk vastab täpselt ühele tähemärgile. Järgmine päring leiab nimed, mille esimene märk on suvaline üksiktäht, millele järgneb „teenima“ ja seejärel suvaline järelliide:
SELECT *
FROM
Book
WHERE
name LIKE '_earn%';
Päring tagastab:
Teine näide – leia vasteks tekst, mis lõpeb sõnaga „Algaja“ ja veel ühe tähemärgiga:
SELECT *
FROM
Book
WHERE
name LIKE '%Beginner_';
Päring tagastab:
PostgreSQL MITTE NAGU Operator
Kombineeri LIKE ja NOT, et tagastada read, mis ei vasta tõele mitte sobita mustriga. Näiteks loetle kõik raamatud, mille nimi ei alga sõnaga „Post”:
SELECT *
FROM
Book
WHERE
name NOT LIKE 'Post%';
Päring tagastab:
Ainult üks raamat vastab tingimusele. Nüüd loetlege kõik raamatud, mille nimi vastab tingimusele. mitte sisaldama sõna „Valmistatud”:
SELECT *
FROM
Book
WHERE
name NOT LIKE '%Made%';
Päring tagastab:
Tingimusele vastavad kolm rida.
LIKE kasutamine pgAdminiga
Samu päringuid saab käivitada ka graafiliselt pgAdmini päringutööriistas.
% Metamärk pgAdminis
Step 1) Logi sisse pgAdmini.
Step 2) Klõpsake vasakpoolsel navigeerimisribal nuppu Andmebaasid, seejärel klõpsake Demo.
Step 3) Tippige päring päringuredaktorisse:
SELECT *
FROM
Book
WHERE
name LIKE 'Lear%';
Step 4) Click Täitma.
Tulemuste paan näitab sobivaid raamatuid:
Raamatu otsimiseks, mille nimes on sõna „autor“:
Step 1) Tippige päringuredaktorisse järgmine teave:
SELECT *
FROM
Book
WHERE
name LIKE '%by%';
Step 2) Click Täitma.
Tulemuste paan näitab:
_ Metamärk pgAdminis
Step 1) Logi sisse pgAdmini.
Step 2) Klõpsake vasakpoolsel navigeerimisribal nuppu Andmebaasid, seejärel klõpsake Demo.
Step 3) Tippige päring päringuredaktorisse:
SELECT *
FROM
Book
WHERE
name LIKE '_earn%';
Step 4) Click Täitma.
Tulemuste paan näitab:
Step 5) Käivita teine näide:
- Tippige päring päringuredaktorisse:
SELECT *
FROM
Book
WHERE
name LIKE '%Beginner_';
- Click Täitma.
Tulemuste paan näitab:
MITTE NAGU pgAdminis
Step 1) Logi sisse pgAdmini.
Step 2) Klõpsake vasakpoolsel navigeerimisribal nuppu Andmebaasid, seejärel klõpsake Demo.
Step 3) Kõigi raamatute loetlemiseks, mille nimi ei alga sõnaga „Post”, tippige:
SELECT *
FROM
Book
WHERE
name NOT LIKE 'Post%';
Step 4) Click Täitma.
Tulemuste paan näitab:
Raamatute loetlemiseks, mille nimes pole sõna „Made”:
Step 1) Tippige päringuredaktorisse järgmine teave:
SELECT *
FROM
Book
WHERE
name NOT LIKE '%Made%';
Step 2) Click Täitma.
Tulemuste paan näitab:
Laadige alla selles õpetuses kasutatud andmebaas.
























