MySQL aizstājējzīmju apmācība: Patīk, NAV Patīk, Escape, (%), (_)

Satura rādītājs:

Anonim

Kas ir MySQL aizstājējzīmes?

MySQL aizstājējzīmes ir rakstzīmes, kas palīdz meklēt datus, kas atbilst sarežģītiem kritērijiem. Aizstājējzīmes tiek izmantotas kopā ar LIKE salīdzināšanas operatoru vai ar NOT LIKE salīdzināšanas operatoru.

Kāpēc izmantot WildCards?

Ja esat iepazinies ar SQL lietošanu, varat domāt, ka varat meklēt visus sarežģītos datus, izmantojot klauzulu SELECT un WHERE. Tad kāpēc izmantot aizstājējzīmes?

Pirms atbildam uz šo jautājumu, apskatīsim piemēru. Pieņemsim, ka Myflix video bibliotēkas mārketinga nodaļa veica mārketinga reklāmas Teksasas pilsētā un vēlētos saņemt atsauksmes par dalībnieku skaitu

kas reģistrēts Teksasā, lai iegūtu vajadzīgo informāciju, varat izmantot šo SELECT paziņojumu kopā ar klauzulu WHERE.

SELECT * FROM members WHERE postal_address = 'Austin , TX' OR postal_address = Dallas , TX OR postal_address = Iola,TX OR postal_adress = Houston ,TX';

Kā redzat no iepriekš minētā vaicājuma, klauzula WHERE kļūst sarežģīta. Tomēr aizstājējzīmju izmantošana vienkāršo vaicājumu, jo mēs varam izmantot kaut ko vienkāršu, piemēram, zemāk parādīto skriptu.

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

Īsāk sakot, aizstājējzīmes ļauj mums attīstīt enerģijas meklētājprogrammas mūsu datu vadītajās lietojumprogrammās.

Aizstājējzīmju veidi

% procentos

%% rakstzīme tiek izmantota, lai norādītu nulle (0) vai vairāk rakstzīmju . Tam ir šāda pamata sintakse.

SELECT statements… WHERE fieldname LIKE 'xxx%';

ŠEIT

  • "SELECT priekšraksts ..." ir standarta SQL SELECT komanda.
  • "WHERE" ir atslēgas vārds, ko lieto filtra lietošanai.
  • "LIKE" ir salīdzināšanas operators, kas tiek izmantots kopā ar aizstājējzīmēm
  • 'xxx' ir jebkurš noteikts sākuma raksts, piemēram, viena rakstzīme vai vairāk, un "%" atbilst jebkuram rakstzīmju skaitam, sākot no nulles (0).

Lai pilnībā novērtētu iepriekš minēto apgalvojumu, aplūkosim praktisku piemēru

Pieņemsim, ka mēs vēlamies iegūt visas filmas, kuru nosaukumā ir vārds "kods", mēs izmantotu aizstājējzīmi procentos, lai veiktu parauga atbilstību abām vārda "kods" pusēm. Zemāk ir SQL priekšraksts, kuru var izmantot, lai sasniegtu vēlamos rezultātus.

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

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums zemāk redzamos rezultātus.

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

Ievērojiet, ka pat tad, ja meklēšanas atslēgas vārds "kods" parādās virsraksta sākumā vai beigās, tas joprojām tiek atgriezts mūsu rezultātu komplektā. Tas ir tāpēc, ka mūsu kodā sākumā ir iekļauts jebkurš rakstzīmju skaits, pēc tam tas atbilst paraugam "kods", kam seko jebkurš rakstzīmju skaits beigās.

Pārveidosim iepriekš minēto skriptu, lai aizstātu aizstājējzīmi tikai meklēšanas kritēriju sākumā.

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

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums zemāk redzamos rezultātus.

 
movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

Ievērojiet, ka no datu bāzes ir atgriezts tikai viens ieraksts. Tas ir tāpēc, ka mūsu kods atbilst jebkuram rakstzīmju skaitam filmas nosaukuma sākumā un iegūst tikai ierakstus, kas beidzas ar rakstu "kods".

Pārvietosim aizstājējzīmi procentos uz norādītā modeļa beigām, kas jāsaskaņo. Modificētais skripts ir parādīts zemāk.

SELECT * FROM movies WHERE title LIKE 'code%';
Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums zemāk redzamos rezultātus.
 
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

Ievērojiet, ka no datu bāzes ir atgriezts tikai viens ieraksts. Tas ir tāpēc, ka mūsu kods atbilst visiem nosaukumiem, kas sākas ar rakstu "kods", kam seko jebkurš rakstzīmju skaits.

_ pasvītrot aizstājējzīmi

Pasvītrojuma aizstājējzīme tiek izmantota, lai precīzi atbilstu vienam rakstzīmei . Pieņemsim, ka mēs vēlamies meklēt visas filmas, kas tika izlaistas 200x gados, kur x ir tieši viena rakstzīme, kurai varētu būt jebkura vērtība. Lai to panāktu, mēs izmantotu pasvītrojuma aizstājējzīmi. Zemāk esošajā scenārijā atlasītas visas filmas, kas tika izlaistas gadā "200x"

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

Iepriekš minētā skripta izpildīšana MySQL darbagaldā pret myflixdb dod mums zemāk redzamos rezultātus.

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

Ievērojiet, ka mūsu rezultātu komplektā ir atgrieztas tikai tās filmas, kurām lauka gadā ir 200 sekotāju. Tas ir tāpēc, ka pasvītrojuma aizstājējzīme sakrīt ar zīmējumu 200, kam seko jebkura atsevišķa rakstzīme

Nepatīk

Operatoru NOT loģiski var izmantot kopā ar aizstājējzīmēm, lai atgrieztu rindas, kas neatbilst norādītajam paraugam.

Pieņemsim, ka mēs vēlamies iegūt filmas, kuras netika izlaistas 200x gadā. Lai iegūtu rezultātus, mēs izmantotu NOT loģisko operatoru kopā ar pasvītrojuma aizstājējzīmi. Zemāk ir skripts, kas to dara.

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

Ievērojiet, ka mūsu rezultātu komplektā ir atgrieztas tikai tās filmas, kuru izlaišanas gads nesākas ar 200. Tas ir tāpēc, ka aizstājējzīmju šablona meklēšanā mēs izmantojām NOT loģisko operatoru.

Escape atslēgvārds.

Atslēgvārdu ESCAPE izmanto, lai izvairītos no rakstiem atbilstošām rakstzīmēm, piemēram, (%) procentuālās daļas un pasvītrojuma (_), ja tās veido daļu no datiem.

Pieņemsim, ka mēs vēlamies pārbaudīt virkni "67%", kuru mēs varam izmantot;

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

Ja mēs vēlamies meklēt filmu "67% vainīgs", lai to izdarītu, mēs varam izmantot zemāk redzamo skriptu.

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

Piezīme dubulto " % %" ar LIKE klauzulu, pirmā sarkanā " % ", tiek uzskatīts par daļu no virknes, kas meklēja. Otrs tiek izmantots, lai saskaņotu jebkuru nākamo rakstzīmju skaitu.

Tas pats vaicājums darbosies arī tad, ja izmantosim kaut ko līdzīgu

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

Kopsavilkums

  • Patīk un aizstājējzīmes - spēcīgi rīki, kas palīdz meklēt datus, kas atbilst sarežģītiem modeļiem.
  • Ir vairākas aizstājējzīmes, kas cita starpā ietver procentuālo daļu, pasvītrojumu un charlist (neatbalsta MySQL)
  • Procentu aizstājējzīme tiek izmantota, lai saskaņotu jebkuru rakstzīmju skaitu, sākot no nulles (0) un vairāk.
  • Pasvītrojuma aizstājējzīme tiek izmantota, lai precīzi atbilstu vienam rakstzīmei.