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%';
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

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.