PostgreSQL LIKE-operatören hjälper oss att matcha textvärden mot mönster med jokertecken. Det är möjligt att matcha sökuttrycket till mönsteruttrycket.
Om en matchning inträffar returnerar LIKE-operatören true. Med hjälp av LIKE-operatören är det möjligt att använda jokertecken i WHERE-satsen i SELECT-, UPDATE-, INSERT- eller DELETE-uttalanden.
I den här PostgreSQL-självstudien lär du dig följande:
- Vilda kort
- Syntax
- Med% jokertecken
- Med _ jokertecken
- Använd INTE operatör
- Använda pgAdmin
Vilda kort
Det finns bara två jokertecken som kan användas tillsammans med
- Procenttecken (%)
- Understreck (_)
Procenttecknet (%) används för att representera noll, ett eller många tecken eller siffror.
Jokertecken med understrykning (_) används för att representera ett tecken eller nummer. Dessa symboler kan också kombineras. Om LIKE-operatören inte används tillsammans med dessa två tecken kommer den att fungera som lika operatör.
Syntax
Här är syntaxen för LIKE-operatören:
expression LIKE pattern [ ESCAPE 'escape-character' ]
Uttrycket är ett teckenuttryck som en kolumn eller ett fält.
Mönstret är ett teckenuttryck med mönstermatchning.
Escape-karaktären är en valfri parameter. Det möjliggör testning av bokstavliga förekomster av jokertecken som% och _. Om den inte tillhandahålls kommer \ att användas som flyktecken.
Med% jokertecken
Som vi sagt tidigare matchar% -tecknet noll, en eller flera tecken eller siffror. Tänk på följande tabell:
Bok:
Vi vill ha boken som heter "Lear
... "för att få det resultatet kan vi köra följande kommando:SELECT *FROMBookWHEREname LIKE 'Lear%';
Detta returnerar följande:
Boken hittades.
Låt oss söka efter en bok "av" i dess namn:
SELECT *FROMBookWHEREname LIKE '%by%';
Detta returnerar följande:
Med _ jokertecken
Som vi nämnde tidigare representerar _ -tecknet ett tecken eller nummer. Den kan användas enligt nedan:
SELECT *FROMBookWHEREname LIKE '_earn%';
Detta returnerar följande:
Här är ett annat exempel:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
Detta returnerar följande:
Använd INTE operatör
När LIKE-operatoren kombineras med NOT-operatören returneras alla rader som inte matchar sökmönstret. Till exempel, för att se en bok vars namn inte börjar med "post" kan vi köra följande kommando:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Detta returnerar följande:
Endast en bok uppfyllde sökvillkoret. Låt oss se listan över böcker som inte har ordet "Made":
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Detta returnerar följande:
Tre rader uppfyllde sökvillkoret.
Använda pgAdmin
Låt oss nu se hur åtgärderna kan utföras med pgAdmin.
Med% jokertecken
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Skriv frågan i frågeditoren:
SELECT *FROMBookWHEREname LIKE 'Lear%';
Steg 4) Klicka på knappen Kör.
Den ska returnera följande:
För att söka efter en bok "av" i dess namn:
Steg 1) Skriv följande kommando i frågeredigeraren:
SELECT *FROMBookWHEREname LIKE '%by%';
Steg 2) Klicka på knappen Kör.
Den ska returnera följande:
Med _ jokertecken
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Skriv frågan i frågeditoren:
SELECT *FROMBookWHEREname LIKE '_earn%';
Steg 4) Klicka på knappen Kör.
Den ska returnera följande:
Steg 5) Så här kör du det andra exemplet:
- Skriv följande fråga i frågeredigeraren:
SELECT *FROMBookWHEREname LIKE '%Beginner_';
- Klicka på knappen Kör.
Den ska returnera följande:
Använd INTE operatör
Steg 1) Logga in på ditt pgAdmin-konto.
Steg 2)
- Från navigeringsfältet till vänster - Klicka på databaser.
- Klicka på Demo.
Steg 3) Om du vill se alla böcker vars namn inte börjar med "Lägg upp" skriver du frågan i frågeditoren:
SELECT *FROMBookWHEREname NOT LIKE 'Post%';
Steg 4) Klicka på knappen Kör.
Den ska returnera följande:
För att se listan över böcker vars namn inte har ordet "Made":
Steg 1) Skriv följande fråga i frågeditorn:
SELECT *FROMBookWHEREname NOT LIKE '%Made%';
Steg 2) Klicka på knappen Kör.
Den ska returnera följande:
Sammanfattning:
- PostgreSQL LIKE används för att matcha textvärden mot mönster med jokertecken.
- LIKE-klausulen tillåter oss att använda jokertecken i SELECT-, UPDATE-, INSERT- eller DELETE-uttalanden.
- % Jokertecken matchar ett eller flera värden. Värdena kan vara siffror eller tecken.
- _ Jokerteckenet matchar exakt ett värde. Värdet kan vara ett tecken eller ett tal.
- LIKE-operatören kan kombineras med operatören INTE för att returnera någon rad som inte matchar sökmönstret.
Ladda ner databasen som används i denna handledning