1. Sissejuhatus
Intro
Andmebaasi haldamisel on sageli vajalik teatud andmete asendamine. Näiteks tootenimede muutmine või aadresside uuendamine – selliseid olukordi, kus olemasolev tekst tuleb uue vastu vahetada, esineb sageli. MySQL-i REPLACE
-funktsiooni abil saab selliseid asendusi teha kiiresti ja tõhusalt. Selles artiklis selgitame REPLACE
-funktsiooni kasutamist alustasandist kuni praktiliste näideteni.
Artikli eesmärk
Käesoleva artikli eesmärk on õpetada MySQL-i REPLACE
-funktsiooni põhikasutust ja näidata, kuidas seda saab kasutada tegelikes andmebaasioperatsioonides. Läbides näiteid lihtsatest stringi asendustest kuni mitme asenduse kombineerimiseni, saad põhjaliku arusaama selle funktsiooni võimalustest.
2. REPLACE-funktsiooni põhikasutus
Süntaks ja selgitus
REPLACE
-funktsioon asendab määratud stringis konkreetse alamsõne uuega. Süntaks on järgmine:
REPLACE(str, from_str, to_str)
str
: algne string, mida töödeldakse.from_str
: asendatav alamsõne.to_str
: uus alamsõne, millega asendatakse.
See funktsioon asendab kõik from_str
-i esinemised str
-is to_str
-iga. Oluline on tähele panna, et asendamine on tõstutundlik.
Lihtne näide
Näiteks kui soovime stringis “Java and JavaScript is good” asendada “Java” sõnaga “JAVA”, kasutame järgmist päringut:
SELECT REPLACE('Java and JavaScript is good', 'Java', 'JAVA');
Tulemuseks on “JAVA and JavaScript is good”. REPLACE
-funktsioon otsib kogu määratud stringist kõik from_str
-i esinemised ja asendab need to_str
-iga.
Tõstutundlik käitumine
Kuna REPLACE
-funktsioon eristab suuri ja väikeseid tähti, käsitletakse “Java” ja “java” eraldi. Näiteks järgmises päringus asendatakse ainult “AaA”:
SELECT REPLACE('aaa AaA aAa aaA', 'AaA', 'REPLACE');
Sellisel juhul jäävad “aaa” ja “aAa” muutmata ning ainult “AaA” asendatakse. Selle käitumise mõistmine on oluline REPLACE
-funktsiooni kasutamisel.
3. Praktiline näide: ühe stringi asendamine
Näide 1: Lihtne asendus
Kui soovime asendada tootenimest “vana toode” sõnaga “uus toode”, kasutame järgmist päringut:
SELECT REPLACE('See on vana toode', 'vana toode', 'uus toode');
Tulemus: “See on uus toode”. REPLACE
-funktsioon asendab kõik määratud stringi esinemised.
Näide 2: Mitmebaidilised tähemärgid
REPLACE
-funktsioon töötab ka mitmebaidiliste märkidega (nt jaapani või eesti täpitähed). Näiteks:
SELECT REPLACE('See on Tallinna piirkond', 'Tallinna', 'Tartu');
Tulemuseks on “See on Tartu piirkond”. Funktsioon töötab täpselt ka erimärkidega keelte puhul.
4. Mitme stringi samaaegne asendamine
Pesastatud REPLACE
Mitme stringi korraga asendamiseks saab pesastada mitu REPLACE
-funktsiooni. Näiteks:
UPDATE t_test SET emp = REPLACE(REPLACE(REPLACE(emp, 'üks', '1'), 'kaks', '2'), 'kolm', '3');
Pesastatud funktsioonid on kasulikud, kuid võivad muuta päringu loetamatuks, kui neid on liiga palju.
CASE-lause kasutamine
Mitme tingimuse põhjal asendamiseks sobib hästi CASE
-lause:
UPDATE t_test SET emp = CASE
WHEN emp LIKE '%üks' THEN REPLACE(emp,'üks','1')
WHEN emp LIKE '%kaks' THEN REPLACE(emp,'kaks','2')
WHEN emp LIKE '%kolm' THEN REPLACE(emp,'kolm','3')
ELSE emp
END;
CASE
-lause annab paindlikkust ja on loetavam mitme asenduse korral.
5. Jõudlus ja parimad praktikad
Mõju jõudlusele
Suure andmehulga puhul võib REPLACE
-funktsiooni kasutamine aeglustada päringuid. Seetõttu tasub:
- Indeksite kasutamine: suurendab otsingu ja asenduse kiirust.
- Töö jagamine: väga suurte andmete korral tee asendused osade kaupa.
Parimad praktikad
- Varukoopia: enne massilisi asendusi tee kindlasti andmebaasi varukoopia.
- Testimine: testi päringuid enne tootmiskeskkonnas käivitamist.
- WHERE-klausel: piira muudatused ainult vajalikele ridadele.
6. Levinud vead ja tähelepanekud
Tõstutundlikkus
“Java” ja “java” käsitletakse eraldi. Vajadusel kasuta LOWER
või UPPER
-funktsiooni.
Kombineerimine teiste funktsioonidega
REPLACE
-i saab kasutada koos teiste stringifunktsioonidega (nt CONCAT
, SUBSTRING
, TRIM
), kuid testi alati tulemusi.
Tüüpilised vead
Sageli esineb vigu, kui asendatav string puudub või asendatakse rohkem, kui plaanitud. Seetõttu kontrolli andmeid enne ja pärast päringu käivitamist.
7. Kokkuvõte
REPLACE
-funktsioon on võimas tööriist stringide töötlemiseks MySQL-is. Õige kasutamine võimaldab hoida andmebaasi korras ja töö efektiivsena. Jälgi alati jõudlust ja testi enne tootmisesse viimist.
8. Seotud teemad
Teised stringifunktsioonid
- CONCAT: ühendab mitu stringi.
- SUBSTRING: väljastab osa stringist.
- TRIM: eemaldab tühikud stringi algusest ja lõpust.
Seotud artiklid
- MySQL-i stringifunktsioonide ülevaade
- MySQL andmebaasi optimeerimise viisid
- MySQL CASE-lause kasutamine