PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Eksempler

โšก Smart oppsummering

PostgreSQL LIKE matcher tekst mot mรธnstre ved hjelp av to jokertegn โ€“ prosenttegnet og understrekingen. Denne veiledningen viser hvordan du bruker LIKE og NOT LIKE i SELECT-setninger, med eksempler fra psql og pgAdmin for hvert tilfelle.

  • ๐Ÿ” Kjerne Operator: LIKE sammenligner en kolonne eller et uttrykk mot et jokertegnmรธnster og returnerer sann ved et treff.
  • ๐ŸŒŸ To jokertegn: % samsvarer med null eller flere tegn; _ samsvarer med nรธyaktig ett tegn.
  • โœ‹ Omvendt kamp: Kombiner NOT med LIKE for รฅ returnere rader som ikke gjรธr det ikke matche mรธnsteret.
  • ๐Ÿ› ๏ธ To grensesnitt: Kjรธr de samme spรธrringene fra psql-kommandolinjen eller grafisk i pgAdmin.
  • ๐ŸŽฏ Rรธmningskarakter: Bruk ESCAPE-klausulen for รฅ finne riktige %- eller _-tegn i mรธnsteret.
  • ๐Ÿค– AI Boost: AI-databaseverktรธy oversetter sรธkebehov i enkeltsprรฅk til LIKE-mรธnstre og foreslรฅr ILIKE nรฅr det er behov for samsvar uten รฅ skille mellom store og smรฅ bokstaver.

PostgreSQL LIKE, Not Like, Wildcards (%, _ ) Eksempler

Ocuco PostgreSQL SOM Operatoren matcher tekstverdier mot mรธnstre ved hjelp av jokertegn. Hvis sรธkeuttrykket samsvarer med mรธnsteret, returnerer LIKE trueJokertegn fungerer i WHERE klausul av SELECT, UPDATE, INSERTeller DELETE.

Hva er PostgreSQL Jokertegn?

PostgreSQL stรธtter to LIKE-jokertegn:

  • Prosenttegn (%): samsvarer med null, ett eller mange tegn eller sifre.
  • Understrek (_): samsvarer med nรธyaktig ett tegn eller siffer.

De to symbolene kan kombineres innenfor samme mรธnster. Hvis LIKE brukes uten noen av jokertegnet, oppfรธrer det seg som likhetstegnene (=) operatรธr.

PostgreSQL LIKE-syntaks

Den grunnleggende LIKE-syntaksen er:

expression LIKE pattern [ ESCAPE 'escape-character' ]
  • uttrykk โ€” et tegnuttrykk, vanligvis et kolonne- eller feltnavn.
  • mรธnster โ€” et tegnuttrykk som inneholder jokertegn.
  • escape-karakter โ€” valgfritt. Lar deg matche bokstavelig % or _ tegn. Nรฅr den utelates, brukes omvendt skrรฅstrek (\) er standard escape-tegnet.

PostgreSQL LIKE med %-jokertegnet

Ocuco % tegnet samsvarer med null, ett eller flere tegn. Vurder fรธlgende Book tabell:

Eksempelboktabell brukt i LIKE-eksemplene

For รฅ finne bรธker med navn som begynner med ยซLearยป, kjรธr spรธrringen nedenfor.

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

Spรธrringen returnerer:

LIKE Lear% spรธrreresultat returnerer samsvarende bรธker

Slik finner du bรธker der navnet inneholder ยซavยป hvor som helst:

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

Spรธrringen returnerer:

LIKE %by% sรธkeresultat med samsvarende bรธker

PostgreSQL LIKE med _-jokertegnet

Ocuco _ tegnet samsvarer med nรธyaktig ett tegn. Fรธlgende spรธrring finner navn der det fรธrste tegnet er en hvilken som helst enkeltbokstav, etterfulgt av ยซearnยป og deretter et hvilket som helst suffiks:

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

Spรธrringen returnerer:

LIKE _earn% spรธrreresultat med treff pรฅ prefiks med ett tegn

Et annet eksempel โ€“ finn en tekst som slutter med ยซNybegynnerยป pluss ett tegn til:

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

Spรธrringen returnerer:

LIKE %Beginner_ spรธrreresultat som samsvarer med etterfรธlgende enkelttegn

PostgreSQL IKKE LIKE Operator

Kombiner LIKE med NOT for รฅ returnere rader som ikke gjรธr det ikke samsvar med mรธnsteret. For eksempel, oppgi alle bรธker som ikke har navnet sitt som starter med ยซPostยป:

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

Spรธrringen returnerer:

IKKE LIKER Post% resultat utenom bรธker som starter med Post

Bare รฉn bok oppfyller betingelsen. List nรฅ opp alle bรธker hvis navn ikke ikke inneholder ordet ยซLagetยป:

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

Spรธrringen returnerer:

IKKE LIKER %Made% resultat returnerer tre samsvarende bรธker

Tre rader oppfyller betingelsen.

Bruke LIKE med pgAdmin

De samme spรธrringene kan ogsรฅ kjรธres grafisk i pgAdmins spรธrreverktรธy.

% Jokertegn i pgAdmin

Trinn 1) Logg inn pรฅ pgAdmin.

Trinn 2) Klikk pรฅ i navigasjonslinjen til venstre databaser, klikk deretter demo.

pgAdmin navigasjonstre med databaser og demo utvidet

Trinn 3) Skriv inn spรธrringen i spรธrreredigereren:

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

Trinn 4) Klikk Henrette.

pgAdmin Query Tool med Utfรธr-verktรธylinjeknappen

Resultatruten viser de samsvarende bรธkene:

pgAdmin-resultatrute for LIKE Lear%-spรธrring

Slik sรธker du etter en bok med ยซavยป hvor som helst i navnet:

Trinn 1) Skriv inn fรธlgende i spรธrreredigeringsprogrammet:

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

Trinn 2) Klikk Henrette.

pgAdmin Query Tool kjรธrer LIKE %by%-spรธrring

Resultatruten viser:

pgAdmin-resultatrute for LIKE %by%-spรธrring

_ Jokertegn i pgAdmin

Trinn 1) Logg inn pรฅ pgAdmin.

Trinn 2) Klikk pรฅ i navigasjonslinjen til venstre databaser, klikk deretter demo.

pgAdmin navigasjonstre som viser databasetre

Trinn 3) Skriv inn spรธrringen i spรธrreredigereren:

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

Trinn 4) Klikk Henrette.

pgAdmin Query Tool kjรธrer LIKE _earn%-spรธrring

Resultatruten viser:

pgAdmin-resultatrute for LIKE _earn%-spรธrring

Trinn 5) Kjรธr det andre eksemplet:

  1. Skriv inn spรธrringen i spรธrreredigereren:
SELECT *
FROM
   Book
WHERE
   name LIKE '%Beginner_';
  1. Klikk Henrette.

pgAdmin Query Tool kjรธrer LIKE %Beginner_-spรธrring

Resultatruten viser:

pgAdmin-resultatrute for LIKE %Beginner_-spรธrring

IKKE SOM i pgAdmin

Trinn 1) Logg inn pรฅ pgAdmin.

Trinn 2) Klikk pรฅ i navigasjonslinjen til venstre databaser, klikk deretter demo.

pgAdmin navigasjonstre for eksempel IKKE LIKER

Trinn 3) For รฅ liste opp alle bรธker som ikke starter med ยซPostยป, skriver du:

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

Trinn 4) Klikk Henrette.

pgAdmin Query Tool kjรธrer IKKE SOM Post%-spรธrring

Resultatruten viser:

pgAdmin-resultatrute for NOT LIKE Post%-spรธrring

Ytterligere pgAdmin-resultatdetaljer for NOT LIKE-spรธrringen

For รฅ liste opp bรธker hvis navn ikke inneholder ordet ยซMadeยป:

Trinn 1) Skriv inn fรธlgende i spรธrreredigeringsprogrammet:

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

Trinn 2) Klikk Henrette.

pgAdmin Query Tool kjรธrer IKKE LIKER %Made%-spรธrring

Resultatruten viser:

pgAdmin-resultatrute for IKKE LIKER %Made%-spรธrring

Last ned databasen som brukes i denne veiledningen.

Spรธrsmรฅl og svar

LIKE skiller mellom store og smรฅ bokstaver, mens ILIKE utfรธrer samsvar uten รฅ skille mellom store og smรฅ bokstaver. ILIKE er en PostgreSQL utvidelse. For eksempel, navnet ILIKE 'lear%' samsvarer med bรฅde ยซLearnยป og ยซLEARยป. Bruk ILIKE nรฅr store og smรฅ bokstaver er uforutsigbare.

Bruk ESCAPE-klausulen til รฅ deklarere et escape-tegn, og sett deretter prefikset for det litterale jokertegnet. For eksempel finner WHERE-koden LIKE '50!%%' ESCAPE '!' verdier som starter med "50%" fordi utropstegnet escaperer prosenttegnet.

Bruk LIKE for enkle prefiks-, suffiks- eller delstreng-treff. Bytt til POSIX regex (~ og ~*) nรฅr du trenger tegnklasser, alternering eller kvantifiseringsfunksjoner. Regex er kraftigere, men vanligvis tregere enn LIKE for grunnleggende mรธnstre.

Ja. AI Assistenter som tekst-til-SQL-copiloter oversetter ledetekster som ยซfinn kunder med e-post som inneholder acmeยป til navn SOM '%acme%' og forklarer jokertegnlogikken, noe som akselererer ad hoc-rapportering.

Generativ AI inspiserer spรธrreplanen, anbefaler en trigramindeks (pg_trgm) for innledende LIKE-sรธk med jokertegn og omskriver mรธnstre som forhindrer indeksbruk. Dette gjรธr fullstendige tabellskanninger om til millisekundsรธk pรฅ store PostgreSQL tabeller.

Oppsummer dette innlegget med: