MySQL Helyettesítő karakterek bemutatója: Tetszik, NEM tetszik, Escape, ( % ), ( _ )
Mik MySQL Helyettesítő karakterek?
MySQL Helyettesítő karakterek olyan karakterek, amelyek segítenek az összetett feltételeknek megfelelő adatok keresésében. A helyettesítő karakterek a LIKE összehasonlító operátorral vagy a NOT LIKE összehasonlító operátorral együtt használatosak.
Miért használjon helyettesítő kártyákat?
Ha ismeri az SQL használatát, úgy gondolhatja, hogy bármilyen összetett adatot kereshet a SELECT és a WHERE záradék használatával. Akkor miért használjunk helyettesítő karaktereket?
Mielőtt erre a kérdésre válaszolnánk, nézzünk egy példát. Tegyük fel, hogy a Myflix videokönyvtár marketing osztálya marketing akciókat végzett Texas városában, és szeretne visszajelzést kapni a tagok számáról
amely Texasból regisztrált, használhatja a következő SELECT utasítást a WHERE záradékkal együtt a kívánt információ eléréséhez.
SELECT * FROM members WHERE postal_address = 'Austin , TX' OR postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';
Amint a fenti lekérdezésből látható, a „WHERE záradék” bonyolulttá válik. A helyettesítő karakterek használata azonban leegyszerűsíti a lekérdezést, mivel használhatunk valami egyszerűt, például az alábbi szkriptet.
SELECT * FROM members WHERE postal_address like '% TX';
Röviden, a helyettesítő karakterek lehetővé teszik számunkra, hogy hatékony keresőmotorokat fejlesszünk adatvezérelt alkalmazásainkká.
A helyettesítő karakterek típusai
% a százalék
% a százalékos karakter a minta meghatározására szolgál nulla (0) vagy több karakter. A következő alapvető szintaxissal rendelkezik.
SELECT statements... WHERE fieldname LIKE 'xxx%';
ITT
- "SELECT utasítás…” a szabványos SQL SELECT parancs.
- A „HOL” a kulcsszó a szűrő alkalmazására.
- A „LIKE” a helyettesítő karakterekkel együtt használt összehasonlító operátor
- Az 'xxx' bármely megadott kezdőminta, például egy vagy több karakter, és a „%” tetszőleges számú, nullától (0) kezdődő karakternek felel meg.
A fenti állítás teljes körű megértéséhez nézzünk egy gyakorlati példát
Tegyük fel, hogy az összes filmet be akarjuk szerezni, amelyeknek a cím része a „kód” szó, akkor a százalékos helyettesítő karaktert használnánk a mintaegyeztetés végrehajtásához a „code” szó mindkét oldalán. Alább látható az SQL utasítás, amellyel a kívánt eredményt lehet elérni.
SELECT * FROM movies WHERE title LIKE '%code%';
A fenti szkript végrehajtása MySQL munkapad a myflixdb ellen az alább látható eredményeket adja.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
7 | Davinci Code | NULL | NULL | 6 |
Figyeljük meg, hogy még ha a „kód” kulcsszó megjelenik is a cím elején vagy végén, akkor is visszakerül az eredménykészletünkbe. Ennek az az oka, hogy a kódunk tetszőleges számú karaktert tartalmaz az elején, majd megegyezik a „kód” mintával, amelyet tetszőleges számú karakter követ a végén.
Most módosítsuk a fenti szkriptünket úgy, hogy csak a keresési feltételek elején szerepeljen a százalékos helyettesítő karakter.
SELECT * FROM movies WHERE title LIKE '%code';
A fenti szkript végrehajtása MySQL munkapad a myflixdb ellen az alább látható eredményeket adja.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
7 | Davinci Code | NULL | NULL | 6 |
Figyelje meg, hogy csak egy rekord érkezett vissza az adatbázisból. Ennek az az oka, hogy kódunk tetszőleges számú karakterrel megegyezik a film címének elején, és csak azokat a rekordokat kapja meg, amelyek a „kód” mintával végződnek.
Most toljuk el a százalékos helyettesítő karaktert az egyeztetendő minta végére. A módosított szkript alább látható.
SELECT * FROM movies WHERE title LIKE 'code%';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
Figyelje meg, hogy csak egy rekord érkezett vissza az adatbázisból. Ennek az az oka, hogy kódunk megfelel minden olyan címnek, amely a „code” mintával kezdődik, amelyet tetszőleges számú karakter követ.
_ aláhúzás helyettesítő karakter
Az aláhúzás helyettesítő karaktert használják pontosan egy karakternek felel meg. Tegyük fel, hogy meg akarunk keresni minden olyan filmet, amelyet 200x-ban mutattak be, ahol x pontosan egy karakter, amely bármilyen értéket jelenthet. Ennek eléréséhez az aláhúzású wild cardot használnánk. Az alábbi forgatókönyv kiválasztja az összes filmet, amely a „200x” évben jelent meg
SELECT * FROM movies WHERE year_released LIKE '200_';
A fenti szkript végrehajtása MySQL munkapad a myflixdb ellen az alább látható eredményeket adja.
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
2 | Forgetting Sarah Marshal | Nicholas Stoller | 2008 | 2 |
9 | Honey mooners | Jhon Shultz | 2005 | 8 |
Figyeljük meg, hogy csak azok a filmek szerepelnek az eredményhalmazban, amelyeknek a megjelenési évében 200 követés van. Ennek az az oka, hogy az aláhúzás helyettesítő karaktere megegyezett a 200-as mintával, amelyet bármelyik karakter követ
Nem mint
A NOT logikai operátor a helyettesítő karakterekkel együtt használható olyan sorok visszaadására, amelyek nem egyeznek a megadott mintával.
Tegyük fel, hogy olyan filmeket szeretnénk beszerezni, amelyeket nem 200-szor adták ki. A NOT logikai operátort az aláhúzás helyettesítő karakterével együtt használjuk az eredmények eléréséhez. Alább látható a forgatókönyv, amely ezt teszi.
SELECT * FROM movies WHERE year_released NOT LIKE '200_';
movie_id | title | director | year_released | category_id |
---|---|---|---|---|
1 | Pirates of the Caribean 4 | Rob Marshall | 2011 | 1 |
4 | Code Name Black | Edgar Jimz | 2010 | NULL |
8 | Underworld-Awakeninh | Michahel Eal | 2012 | 6 |
Figyeljük meg, csak azok a filmek kerültek vissza az eredménykészletünkbe, amelyek a megjelenés évében nem 200-zal kezdődnek. Ennek az az oka, hogy a NOT logikai operátort használtuk a helyettesítő karakteres minták keresésében.
Escape kulcsszó
Az ESCAPE kulcsszót használják menekülési minta illesztő karakterek például a (%) százalék és az aláhúzás (_), ha az adatok részét képezik.
Tegyük fel, hogy ellenőrizni akarjuk a használható „67%” karakterláncot;
LIKE '67#%%' ESCAPE '#';
Ha a „67% Guilty” című filmre szeretnénk rákeresni, akkor ehhez használhatjuk az alábbi forgatókönyvet.
SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';
Jegyezze meg a dupla "%%” a LIKE záradékban, az első pirossal „%” a keresendő karakterlánc részeként kezelendő. A másik tetszőleges számú karakter megfeleltetésére szolgál.
Ugyanez a lekérdezés akkor is működni fog, ha valami hasonlót használunk
SELECT * FROM movies WHERE title LIKE '67=%%' ESCAPE '=';
Összegzésként
- Tetszik és helyettesítő karakterek hatékony eszközök, amelyek segítenek az összetett mintáknak megfelelő adatok keresésében.
- Számos helyettesítő karakter létezik, amelyek tartalmazzák a százalékot, az aláhúzást és a karakterlistát (nem támogatja MySQL ) többek között
- A százalékos helyettesítő karakter használható tetszőleges számú, nullától (0) és több karakterhez tartozó karakterhez.
- Az aláhúzás helyettesítő karaktere pontosan egy karakternek felel meg.