MySQL Wildcards oktatóanyag: Tetszik, NEM Tetszik, Menekülés, (%), (_)

Tartalomjegyzék:

Anonim

Mik azok a MySQL helyettesítő karakterek?

A MySQL helyettesítő karakterek olyan karakterek, amelyek elősegítik az összetett kritériumoknak megfelelő adatok keresését. A helyettesítő karaktereket a LIKE összehasonlító operátorral vagy a NOT LIKE összehasonlító operátorral együtt használják.

Miért érdemes használni a WildCard kártyákat?

Ha ismeri az SQL használatát, akkor azt gondolhatja, hogy bármilyen összetett adatot kereshet a SELECT és WHERE záradékkal. Akkor miért használja a helyettesítő karaktereket?

Mielőtt megválaszolnánk a kérdést, nézzünk meg egy példát. Tegyük fel, hogy a Myflix videó könyvtár marketing osztálya marketing promóciókat hajtott végre Texas városában, és szeretne visszajelzést kapni a tagok számáról

hogy Texasból regisztrálták, a következő SELECT utasítással és a WHERE záradékkal együtt használhatja a kívánt információk megszerzését.

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 egyszerűsíti a lekérdezést, mivel valami egyszerűt használhatunk, például az alább látható szkriptet.

SELECT * FROM members WHERE postal_address like '% TX';

Röviden, a helyettesítő karakterek lehetővé teszik számunkra, hogy az erőforrás-keresőket az adatközpontú alkalmazásokká fejlesszük.

Helyettesítő karakterek típusai

% a százalék

A százalékos karakter% nulla (0) vagy annál több karakter megadására szolgál . A következő alapvető szintaxissal rendelkezik.

SELECT statements… WHERE fieldname LIKE 'xxx%';

ITT

  • A "SELECT utasítás ..." a szokásos SQL SELECT parancs.
  • A "WHERE" a kulcsszó, amelyet a szűrő alkalmazására használnak.
  • A "LIKE" az összehasonlító operátor, amelyet helyettesítő karakterekkel együtt használnak
  • Az 'xxx' bármely megadott kezdőminta, például egyetlen vagy több karakter, és a "%" tetszőleges számú karakternek felel meg nullától (0) kezdve.

A fenti állítás teljes körű értékelése érdekében nézzünk meg egy gyakorlati példát

Tegyük fel, hogy az összes olyan filmet meg akarjuk szerezni, amelynek címe a "kód" szóval szerepel, a százalékos helyettesítő karaktert használnánk a "kód" szó mindkét oldalán a minta egyezésének végrehajtására. Az alábbiakban bemutatjuk az SQL utasítást, amely felhasználható a kívánt eredmények elérésére.

SELECT * FROM movies WHERE title LIKE '%code%';

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz az alábbiakban bemutatott eredményeket nyújtja nekünk.

 
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL
7 Davinci Code NULL NULL 6

Figyelje meg, hogy még akkor is, ha a "kód" keresőszó megjelenik a cím elején vagy végén, akkor is az eredményhalmazunkban jelenik meg. Ennek az az oka, hogy kódunk tetszőleges számú karaktert tartalmaz az elején, majd megegyezik a "kód" mintával, amelyet a végén tetszőleges számú karakter követ.

Módosítsuk most a fenti szkriptünket, hogy csak a keresési feltételek elején szerepeljen a helyettesítő karakter százaléka.

SELECT * FROM movies WHERE title LIKE '%code';

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz az alábbiakban bemutatott eredményeket nyújtja nekünk.

 
movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

Figyelje meg, hogy csak egy rekordot adott vissza az adatbázis. Ennek az az oka, hogy kódunk tetszőleges számú karakterrel megegyezik a film címe elején, és csak olyan rekordokat kap, amelyek a "kód" mintával végződnek.

Tegyük most át a helyettesítő karakter százalékos arányát a megadott illesztendő minta végére. A módosított szkript alább látható.

SELECT * FROM movies WHERE title LIKE 'code%';
A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz az alábbiakban bemutatott eredményeket nyújtja nekünk.
 
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

Figyelje meg, hogy csak egy rekordot adtak vissza az adatbázisból. Ennek az az oka, hogy kódunk megegyezik az összes címmel, amely a "kód" mintával kezdődik, amelyet tetszőleges számú karakter követ.

_ helyettesítő helyettesítő karakter

Az aláhúzás helyettesítő karakter pontosan egy karakter egyezésére szolgál . Tegyük fel, hogy meg akarjuk keresni az összes olyan filmet, amelyet a 200x-es években adtak ki, ahol x pontosan egy karakter, amely bármilyen érték lehet. Ehhez az aláhúzott vadkártyát használnánk. Az alábbi forgatókönyv kiválasztja az összes filmet, amelyet a "200x" évben adtak ki

SELECT * FROM movies WHERE year_released LIKE '200_';

A fenti parancsfájl futtatása a MySQL munkapadban a myflixdb fájlhoz az alábbiakban bemutatott eredményeket nyújtja nekünk.

 
movie_id title director year_released category_id
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
9 Honey mooners Jhon Shultz 2005 8

Figyelje meg, hogy csak azok a filmek kerültek vissza az eredménykészletünkbe, amelyeknek a terepen megjelent év bármelyik szereplője követi a karaktereket. Ennek oka, hogy az alulhúzott helyettesítő karakter megfelelt a 200 mintának, amelyet bármelyik karakter követett

Nem mint

A NOT logikai operátor a helyettesítő karakterekkel együtt használható a megadott mintának nem megfelelő sorok visszaadására.

Tegyük fel, hogy olyan filmeket szeretnénk beszerezni, amelyeket nem adtak ki 200x-ban. A NOT logikai operátort az aláhúzás helyettesítőjével együtt használnánk az eredmények eléréséhez. Az alábbiakban látható az a szkript, amely ezt megteszi.

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

Vegye figyelembe, hogy csak azok a filmek kerültek vissza az eredménykészletünkbe, amelyek nem a megjelenés évében kezdődnek 200-tal. Ennek oka, hogy a NOT logikai operátort használtuk a helyettesítő karakteres keresés során.

Escape kulcsszó.

Az ESCAPE kulcsszó arra szolgál, hogy elkerülje a mintaillesztési karaktereket , például a (%) százalékot és az aláhúzást (_), ha ezek az adatok részét képezik.

Tegyük fel, hogy ellenőrizni akarjuk a "67%" karakterláncot, amelyet használhatunk;

LIKE '67#%%' ESCAPE '#';

Ha a "67% Guilty" című filmet akarjuk keresni, akkor az alább látható szkriptet használhatjuk erre.

SELECT * FROM movies WHERE title LIKE '67#%%' ESCAPE '#';

Vegye figyelembe a LIKE záradék dupla "%%" -át , az első piros " % " -ot a keresendő karakterlánc részeként kezeli. A másikat a következő karakterek tetszőleges számú karakterének megfeleltetésére használják.

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és

  • A Like & Wildcards hatékony eszközök, amelyek segítenek az összetett mintáknak megfelelő adatok keresésében.
  • Számos helyettesítő karakter szerepel, amelyek többek között tartalmazzák a százalékot, az aláhúzást és a charlistet (a MySQL nem támogatja)
  • A helyettesítő karakter százalékos aránya tetszőleges számú karaktersorozathoz használható, kezdve nullától (0) és több.
  • Az aláhúzás helyettesítő karakter pontosan egy karakter egyezésére szolgál.