PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Eksempler
PostgreSQL LIKE-operatoren hjælper os med at matche tekstværdier mod mønstre ved hjælp af jokertegn. Det er muligt at matche søgeudtrykket med mønsterudtrykket.
Hvis der opstår et match, returnerer LIKE-operatoren sand. Ved hjælp af LIKE-operatoren er det muligt at bruge jokertegn i WHERE-sætningen af SELECT-, UPDATE-, INSERT- eller DELETE-sætninger.
Vilde kort
Der er kun to jokertegn, der kan bruges sammen med
- Procenttegn (%)
- Understregning (_)
Procenttegnet (%) bruges til at repræsentere nul, ét eller mange tegn eller tal.
Understregnings-jokertegnet (_) bruges til at repræsentere ét tegn eller tal. Disse symboler kan også kombineres. Hvis LIKE-operatoren ikke bruges sammen med disse to tegn, vil den fungere som lige-operatoren.
Syntaks
Her er syntaksen for LIKE-operatoren:
expression LIKE pattern [ ESCAPE 'escape-character' ]
Udtrykket er et tegnudtryk som en kolonne eller et felt.
Mønsteret er et karakterudtryk med mønstertilpasning.
Escape-tegnet er en valgfri parameter. Det giver mulighed for at teste bogstavelige forekomster af jokertegn såsom % og _. Hvis det ikke er angivet, vil \ blive brugt som escape-tegn.
Bruger % jokertegn
Som vi sagde tidligere, matcher %-tegnet nul, et eller flere tegn eller tal. Overvej følgende tabel:
Bestil:
Vi vil have bogen, hvis navn er som "Lear..." for at få det resultat, vi kan køre følgende kommando:
SELECT * FROM Book WHERE name LIKE 'Lear%';
Dette vil returnere følgende:
Bogen blev fundet.
Lad os søge efter en bog "af" i dens navn:
SELECT * FROM Book WHERE name LIKE '%by%';
Dette vil returnere følgende:
Bruger jokertegn _
Som vi sagde tidligere, repræsenterer tegnet _ ét tegn eller tal. Den kan bruges som vist nedenfor:
SELECT * FROM Book WHERE name LIKE '_earn%';
Dette returnerer følgende:
Her er et andet eksempel:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
Dette returnerer følgende:
Bruger NOT OperaTor
Når LIKE-operatoren kombineres med NOT-operator, returneres enhver række, der ikke matcher søgemønsteret. For for eksempel at se en bog, hvis navn ikke begynder med "post", kan vi køre følgende kommando:
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
Dette returnerer følgende:
Kun én bog opfyldte søgebetingelsen. Lad os se listen over bøgers navn, der ikke har et ord "Made":
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
Dette returnerer følgende:
3 rækker opfyldte søgebetingelsen.
Bruger pgAdmin
Lad os nu se, hvordan handlingerne kan udføres ved hjælp af pgAdmin.
Bruger % jokertegn
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT * FROM Book WHERE name LIKE 'Lear%';
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
Sådan søger du efter en bog "af" i dens navn:
Trin 1) Indtast følgende kommando i forespørgselseditoren:
SELECT * FROM Book WHERE name LIKE '%by%';
Trin 2) Klik på knappen Udfør.
Det skal returnere følgende:
Bruger jokertegn _
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) Indtast forespørgslen i forespørgselseditoren:
SELECT * FROM Book WHERE name LIKE '_earn%';
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
Trin 5) For at køre det andet eksempel:
- Indtast følgende forespørgsel i forespørgselseditoren:
SELECT * FROM Book WHERE name LIKE '%Beginner_';
- Klik på knappen Udfør.
Det skal returnere følgende:
Bruger NOT OperaTor
Trin 1) Log ind på din pgAdmin-konto.
Trin 2)
- Fra navigationslinjen til venstre - Klik på Databaser.
- Klik på Demo.
Trin 3) For at se alle bøger, hvis navne ikke starter med "Send", skal du skrive forespørgslen i forespørgselseditoren:
SELECT * FROM Book WHERE name NOT LIKE 'Post%';
Trin 4) Klik på knappen Udfør.
Det skal returnere følgende:
For at se listen over bøger, hvis navne ikke har ordet "Made":
Trin 1) Indtast følgende forespørgsel i forespørgselseditoren:
SELECT * FROM Book WHERE name NOT LIKE '%Made%';
Trin 2) Klik på knappen Udfør.
Det skal returnere følgende:
Resumé
- PostgreSQL LIKE bruges til at matche tekstværdier mod mønstre ved hjælp af jokertegn.
- LIKE-klausulen giver os mulighed for at bruge jokertegn i SELECT, UPDATE, INSERT eller DELETE sætninger.
- Jokertegnet % matcher en eller flere værdier. Værdierne kan være tal eller tegn.
- Jokertegnet _ matcher nøjagtigt én værdi. Værdien kan være et tegn eller et tal.
- LIKE-operatoren kan kombineres med NOT-operatoren for at returnere enhver række, der ikke matcher søgemønsteret.
Download databasen brugt i denne vejledning