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: