PostgreSQL LIKE, Not Like, Jokertecken (%, _ ) Exempel

⚡ Smart sammanfattning

PostgreSQL LIKE matchar text mot mönster med hjälp av två jokertecken – procenttecknet och understrecket. Den här handledningen visar hur man använder LIKE och NOT LIKE i SELECT-satser, med fungerande psql- och pgAdmin-exempel för varje fall.

  • 🔍 Kärna Operator: LIKE jämför en kolumn eller ett uttryck mot ett jokerteckenmönster och returnerar sant vid en matchning.
  • 🌟 Två jokertecken: % matchar noll eller fler tecken; _ matchar exakt ett tecken.
  • ✋ Omvänd matchning: Kombinera NOT med LIKE för att returnera rader som inte gör det inte matcha mönstret.
  • 🛠️ Två gränssnitt: Kör samma frågor från psql-kommandoraden eller grafiskt inuti pgAdmin.
  • 🎯 Flyktkaraktär: Använd ESCAPE-klausulen för att matcha tecknen % eller _ i mönstret.
  • 🤖 AI Boost: AI-databasverktyg översätter sökbehov i enkelt språk till LIKE-mönster och föreslår ILIKE när matchning med okänslighet för gemener och skiftlägen krävs.

PostgreSQL LIKE, Not Like, Jokertecken (%, _ ) Exempel

Ocuco-landskapet PostgreSQL SOM operatorn matchar textvärden mot mönster med jokertecken. Om sökuttrycket matchar mönstret returnerar LIKE trueJokertecken fungerar i WHERE klausul om SELECT, UPDATE, INSERT, eller DELETE.

Vad är PostgreSQL Jokertecken?

PostgreSQL stöder två LIKE-jokertecken:

  • Procenttecken (%): matchar noll, ett eller många tecken eller siffror.
  • Understreck (_): matchar exakt ett tecken eller en siffra.

De två symbolerna kan kombineras inom samma mönster. Om LIKE används utan något av jokertecknen, beter sig det som lika med (=) operatör.

PostgreSQL LIKE-syntax

Den grundläggande LIKE-syntaxen är:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • Uttrycket — ett teckenuttryck, vanligtvis ett kolumn- eller fältnamn.
  • mönster — ett teckenuttryck som innehåller jokertecken.
  • escape-karaktär — valfritt. Låter dig matcha bokstav % or _ tecken. När det utelämnas, omvänt snedstreck (\) är standardtecknet för escape.

PostgreSQL GILLA med %-jokertecknet

Ocuco-landskapet % tecknet matchar noll, ett eller flera tecken. Tänk på följande Book tabell:

Exempelbokstabell som används i LIKE-exemplen

För att hitta böcker vars namn börjar med ”Lear”, kör frågan nedan.

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

Frågan returnerar:

LIKE Lear% frågeresultat returnerar matchande böcker

För att hitta böcker vars namn innehåller "av" någonstans:

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

Frågan returnerar:

LIKE %by% sökresultat med matchande böcker

PostgreSQL GILLA med jokertecknet _

Ocuco-landskapet _ tecknet matchar exakt ett tecken. Följande fråga hittar namn där det första tecknet är en valfri bokstav, följt av "earn" och sedan valfritt suffix:

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

Frågan returnerar:

LIKE _earn% frågeresultat med matchningar med ett enda teckens prefix

Ett annat exempel — matcha valfri text som slutar med ”Nybörjare” plus ytterligare ett tecken:

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

Frågan returnerar:

LIKE %Beginner_ frågeresultat som matchar efterföljande enskilt tecken

PostgreSQL INTE SOM Operator

Kombinera LIKE med NOT för att returnera rader som gör det inte matcha mönstret. Till exempel, lista alla böcker vars namn inte börjar med "Post":

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

Frågan returnerar:

INTE GILLAR Post% resultat exklusive böcker som börjar med Post

Endast en bok uppfyller villkoret. Lista nu alla böcker vars namn inte uppfyller villkoret. inte innehåller ordet ”Made”:

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

Frågan returnerar:

INTE GILLAR %Made% resultat returnerar tre matchande böcker

Tre rader uppfyller villkoret.

Använda LIKE med pgAdmin

Samma frågor kan också köras grafiskt inuti pgAdmins frågeverktyg.

% Jokertecken i pgAdmin

Steg 1) Logga in på pgAdmin.

Steg 2) Klicka på i navigeringsfältet till vänster Databaser, Klicka sedan .

pgAdmin navigeringsträd med databaser och demo expanderade

Steg 3) Skriv frågan i frågeredigeraren:

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

Steg 4) Klicka Utförande.

pgAdmin Query Tool med knappen Kör i verktygsfältet

Resultatrutan visar matchande böcker:

pgAdmin-resultatruta för LIKE Lear%-fråga

Så här söker du efter en bok med "av" någonstans i namnet:

Steg 1) Skriv följande i frågeredigeraren:

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

Steg 2) Klicka Utförande.

pgAdmin Query Tool kör LIKE %by%-fråga

Resultatrutan visar:

pgAdmin-resultatruta för LIKE %by%-fråga

_ Jokertecken i pgAdmin

Steg 1) Logga in på pgAdmin.

Steg 2) Klicka på i navigeringsfältet till vänster Databaser, Klicka sedan .

pgAdmin navigationsträd som visar databasträdet

Steg 3) Skriv frågan i frågeredigeraren:

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

Steg 4) Klicka Utförande.

pgAdmin Query Tool kör LIKE _earn% fråga

Resultatrutan visar:

pgAdmin-resultatruta för LIKE _earn%-frågan

Steg 5) Kör det andra exemplet:

  1. Skriv frågan i frågeredigeraren:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Klicka Utförande.

pgAdmin Query Tool kör LIKE %Beginner_-fråga

Resultatrutan visar:

pgAdmin-resultatruta för LIKE %Beginner_-fråga

INTE SOM i pgAdmin

Steg 1) Logga in på pgAdmin.

Steg 2) Klicka på i navigeringsfältet till vänster Databaser, Klicka sedan .

pgAdmin navigationsträd för exempel på INTE GILLAR

Steg 3) För att lista alla böcker vars namn inte börjar med "Post", skriv:

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

Steg 4) Klicka Utförande.

pgAdmin Query Tool kör INTE SOM Post%-fråga

Resultatrutan visar:

pgAdmin-resultatruta för NOT LIKE Post%-fråga

Ytterligare pgAdmin-resultatdetaljer för NOT LIKE-frågan

För att lista böcker vars namn inte innehåller ordet ”Made”:

Steg 1) Skriv följande i frågeredigeraren:

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

Steg 2) Klicka Utförande.

pgAdmin Query Tool kör INTE SOM %Made%-frågan

Resultatrutan visar:

pgAdmin-resultatruta för NOT LIKE %Made%-frågan

Ladda ner databasen som används i den här handledningen.

Vanliga frågor

LIKE är skiftlägeskänslig medan ILIKE utför matchning utan skiftlägeskänslighet. ILIKE är en PostgreSQL tillägg. Till exempel, namnet ILIKE 'lear%' matchar både "Learn" och "LEAR". Använd ILIKE när användarinmatning är oförutsägbar.

Använd ESCAPE-klausulen för att deklarera ett escape-tecken och lägg sedan till prefixet för det litterala jokertecknet. Till exempel hittar WHERE-koden LIKE '50!%%' ESCAPE '!' värden som börjar med "50%" eftersom utropstecknet escapear procenttecknet.

Använd LIKE för enkla matchningar av prefix, suffix eller delsträngar. Växla till POSIX regex (~ och ~*) när du behöver teckenklasser, alternering eller kvantifierare. Regex är kraftfullare men vanligtvis långsammare än LIKE för enkla mönster.

Ja. AI Assistenter som text-till-SQL-copiloter översätter uppmaningar som "hitta kunder vars e-postadress innehåller acme" till namn LIKE '%acme%' och förklarar jokerteckens logik, vilket påskyndar ad hoc-rapportering.

Generativ AI inspekterar frågeplanen, rekommenderar ett trigramindex (pg_trgm) för LIKE-sökningar med inledande jokertecken och skriver om mönster som förhindrar indexanvändning. Detta omvandlar fullständiga tabellskanningar till millisekundsökningar på stora PostgreSQL tabeller.

Sammanfatta detta inlägg med: