MySQL LIKE operaator: mustrivaste ja osalise sobivuse otsing andmebaasis

1. MySQL LIKE ülevaade

MySQL-i LIKE operaatorit kasutatakse andmebaasist nende andmete otsimiseks, mis vastavad kindlale mustrile. LIKE töötab SQL-i WHERE klauslis ning võimaldab seada otsingutingimusi kogu või osalise stringi põhjal. Näiteks on see kasulik juhul, kui soovite otsida „nime, mis algab kindla tähega“ või „tootekoodi, mis sisaldab kindlat märki“.

LIKE operaatori kasutusalad

  • Osa-stringi vaste (osaline sobivus)
  • Konkreetse mustri otsing
  • Andmete filtreerimine

Kuna see operaator on mõeldud mustrivastetele, on see hädavajalik tööriist andmebaasis andmete tõhusaks otsimiseks ja töötlemiseks.

2. MySQL LIKE põhisüntaks

MySQL-is LIKE operaatori kasutamise põhisüntaks on järgmine:

SELECT veeru_nimi FROM tabeli_nimi WHERE veeru_nimi LIKE 'muster';

LIKE kasutamise näited

  • Andmete otsimine, mis algavad kindla tähega
    SELECT * FROM users WHERE name LIKE 'A%';
  • Andmete otsimine, mis sisaldavad kindlat stringi
    SELECT * FROM products WHERE product_code LIKE '%123%';

LIKE operaatorit kasutatakse koos metamärkidega, nagu % ja _. See võimaldab paindlikumaid otsinguid.

3. Metamärgid LIKE operaatoris

LIKE operaator kasutab otsingumustrite määramiseks metamärke. MySQL-is on kaks peamist metamärki:

% metamärk

  • Sobib suvalisele stringile (0 või rohkem märki)
    SELECT * FROM users WHERE email LIKE '%@example.com';
    Selles näites leitakse kõik meilid, mis lõpevad @example.com-ga.

_ metamärk

  • Sobib täpselt ühele märgile
    SELECT * FROM products WHERE product_code LIKE '_A%';
    See näide leiab kõik tootekoodid, mille teine täht on A.

Metamärkide õige kasutamine võimaldab andmeid tõhusalt filtreerida.

4. Mustrivastete tehnikad

Kombineerides LIKE operaatori ja metamärgid, on võimalik teostada erinevaid mustrivasteid.

Eespoolne sobivus (Starts With)

  • Otsib stringe, mis algavad kindla mustriga
    SELECT * FROM customers WHERE name LIKE 'John%';
    Leiab kõik kliendid, kelle nimi algab John-iga.

Tagantpoolne sobivus (Ends With)

  • Otsib stringe, mis lõpevad kindla mustriga
    SELECT * FROM files WHERE filename LIKE '%.pdf';
    Leiab kõik failid, mille nimi lõpeb .pdf-iga.

Osaline sobivus (Contains)

  • Otsib stringe, mis sisaldavad kindlat mustrit
    SELECT * FROM documents WHERE content LIKE '%MySQL%';
    Leiab kõik dokumendid, mis sisaldavad sõna MySQL.

5. Erimärkide escape kasutamine

LIKE operaatoris on % ja _ erimärgid. Kui soovite neid otsida tavaliste märkidena, tuleb kasutada escape-sümbolit.

Escape meetod

  • Näide escape märgi kasutamisest
    SELECT * FROM filenames WHERE filename LIKE 'file_%' ESCAPE '';
    See päring leiab kõik failinimed, mis algavad file_-ga. _ on tavaliselt metamärk, kuid escape-sümboliga käsitletakse seda tavalise märgina.

6. LIKE edasijõudnud kasutus

LIKE operaatorit saab kombineerida teiste SQL-käskudega, et saavutada keerukamaid otsinguid.

JOIN koos LIKE-ga

  • Seotud andmete otsimine tabelite vahel
    SELECT orders.id, customers.name FROM orders JOIN customers ON orders.customer_id = customers.id WHERE customers.name LIKE '%Smith%';
    See päring toob kõik tellimused, kus kliendi nimi sisaldab Smith-i.

NOT LIKE kasutamine

  • Andmete otsimine, mis EI vasta kindlale mustrile
    SELECT * FROM emails WHERE address NOT LIKE '%@spam.com';
    See päring leiab kõik meilid, mis ei lõpe @spam.com-iga.

7. LIKE kasutamise parimad praktikad

LIKE operaatori kasutamisel on mitmeid soovitusi ja ettevaatusabinõusid.

Mõju jõudlusele

  • LIKE kasutamisel võib suurte andmehulkade otsimisel jõudlus väheneda. Eriti siis, kui % on mustri alguses, ei saa indeksit kasutada ja päring võib aeglustuda.

Indeksite kasutamine

  • Jõudluse parandamiseks looge vajaduse korral vastavad indeksid.

8. MySQL LIKE levinud kasutusviisid

MySQL-i LIKE operaatorit kasutatakse paljudes olukordades, näiteks:

Kliendiotsing

  • Otsing kliendinime või e-posti aadressi järgi.

Tootekoodide otsing

  • Otsing tootekoodi osa põhjal.

9. Kokkuvõte

LIKE operaator on võimas mustrivaste tööriist MySQL-is. Selles artiklis selgitasime põhisüntaksit, keerukamaid kasutusviise ja jõudluse optimeerimise soovitusi. Kasutage LIKE-tõhusalt, et parandada andmebaasi otsinguid ja päringuid.

10. Korduma kippuvad küsimused

K1: Mis vahe on LIKE ja = vahel?
V1: = kasutatakse täpse vaste otsimiseks, LIKE aga osaliste vastete ja mustrite jaoks.

K2: Kas LIKE eristab suuri ja väikesi tähti?
V2: MySQL-i vaikeväärtusena LIKE ei tee vahet suur- ja väiketähtedel. Kuid BINARY märksõna abil on võimalik neid eristada.

K3: Kas LIKE saab kasutada ka numbritega?
V3: Põhimõtteliselt kasutatakse seda stringide jaoks, kuid kui arvud on salvestatud tekstina, siis on see võimalik.