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 onA
.
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 algabJohn
-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õnaMySQL
.
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 algavadfile_
-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 sisaldabSmith
-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.