LIKE-mønstre og jokertegn
Bruk LIKE med jokertegnene % og _, forstå forskjellen på store og små bokstaver, og foretrekk ILIKE i PostgreSQL for søk uten hensyn til bokstavtype.
LIKE-mønstre og jokertegn er en gratis leksjon i SQL Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i SQL Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i SQL Academy inneholder totalt 4 leksjoner.
Hva LIKE gjør
LIKE sammenligner en tekststreng med et mønster. Det finnes to jokertegn:
%– en vilkårlig sekvens, også en tom sekvens_– nøyaktig ett tegn
Enkle eksempler
Finn treff basert på prefiks, suffiks og delstreng:
SELECT email FROM users WHERE email LIKE 'a%'; -- starts with a
SELECT email FROM users WHERE email LIKE '%@gmail.com'; -- ends with @gmail.com
SELECT email FROM users WHERE email LIKE '%admin%'; -- contains adminJokertegn for enkelttegn
_ samsvarer med nøyaktig ett tegn. Det er nyttig for koder med fast lengde:
-- 6-char SKU starting with A:
SELECT * FROM products WHERE sku LIKE 'A_____';
-- US zip+4:
SELECT * FROM addresses WHERE zip LIKE '_____-____';Forskjell på store og små bokstaver
LIKE skiller som standard mellom store og små bokstaver i PostgreSQL. Bruk ILIKE for samsvar uten hensyn til store og små bokstaver:
SELECT * FROM users WHERE email LIKE '%@gmail.com'; -- ✗ misses @GMAIL.com
SELECT * FROM users WHERE email ILIKE '%@gmail.com'; -- ✓Escaping av jokertegn
For å finne et bokstavelig % eller _ må du escape det med omvendt skråstrek (eller definere ditt eget ESCAPE-tegn):
-- Match strings that contain '50%':
SELECT * FROM coupons WHERE code LIKE '%50\%%';
-- Custom escape character:
SELECT * FROM coupons WHERE code LIKE '%50!%%' ESCAPE '!';LIKE og indekser
En B-tree-indeks hjelper bare med mønstre som har prefiks:
-- Uses index (prefix is fixed):
SELECT * FROM users WHERE email LIKE 'alice%';
-- Does NOT use a normal index (leading wildcard):
SELECT * FROM users WHERE email LIKE '%example.com';Korrigering av søk med innledende jokertegn
For søk etter "%example%" kan du bruke en trigrambasert (pg_trgm) GIN-indeks – dette dekkes i Avansert indeksering.
CREATE EXTENSION IF NOT EXISTS pg_trgm;
CREATE INDEX users_email_trgm_idx ON users USING GIN (email gin_trgm_ops);
SELECT * FROM users WHERE email LIKE '%example%'; -- now indexableNOT LIKE
Neger samsvaret:
SELECT * FROM emails WHERE subject NOT LIKE 'RE:%';SIMILAR TO og regulære uttrykk (PostgreSQL)
For mer avansert mønstergjenkjenning:
-- SIMILAR TO — SQL regex (rarely used)
SELECT 'abc' SIMILAR TO '%(a|b)%'; -- TRUE
-- POSIX regex:
SELECT 'abc123' ~ '^[a-z]+[0-9]+$'; -- TRUE
SELECT 'ABC' ~* 'abc'; -- TRUE (case insensitive)Bygge søkefelt
Når du kobler til et søkefelt for brukere, bør du først rense inndataene for jokertegn for å unngå uventet oppførsel:
-- Escape user input's special chars before concatenating to LIKE pattern,
-- or use to_tsquery for word-level search.
SELECT * FROM products
WHERE LOWER(name) LIKE LOWER('%' || $1 || '%');Ikke gjenoppfinn fulltekstsøk
For rangert og språkbevisst søk i dokumenter bør du bruke tsvector + GIN, ikke LIKE. Dette dekkes senere i Avansert indeksering.
Oppsummering
LIKE er utmerket for enkel mønstergjenkjenning.
%= vilkårlig tekststreng,_= ett tegn- Bruk ILIKE for samsvar uten hensyn til store og små bokstaver
- Prefikssøk bruker B-tree; delstrengsøk trenger trigrambasert indeks
Hurtigsjekk
Hvilket mønster samsvarer med tekststrenger som slutter på .com?
Lær deg SQL med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 46
- Leksjoner
- 183
Ofte stilte spørsmål
Er leksjonen «LIKE-mønstre og jokertegn» gratis?
Ja – hele teksten i «LIKE-mønstre og jokertegn» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av SQL Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i SQL Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «LIKE-mønstre og jokertegn»?
Bruk LIKE med jokertegnene % og _, forstå forskjellen på store og små bokstaver, og foretrekk ILIKE i PostgreSQL for søk uten hensyn til bokstavtype. Du øver på SQL Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med SQL Academy?
Ingen tidligere erfaring er nødvendig. SQL Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «LIKE-mønstre og jokertegn»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne SQL Academy-leksjonen?
Ja. Alle SQL Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- LIKE-mønstre og jokertegn
- IN og NOT IN for mengder
- BETWEEN for intervaller
- IS NULL, IS NOT NULL og COALESCE