„MySQL“ pakaitinių simbolių pamoka: patinka, NĖRA patinka, pabėgimas, (%), (_)

Turinys:

Anonim

Kas yra „MySQL“ pakaitos simboliai?

„MySQL“ pakaitos simboliai yra ženklai, padedantys ieškoti duomenų, atitinkančių sudėtingus kriterijus. Pakaitos simboliai naudojami kartu su LIKE palyginimo operatoriumi arba su NOT LIKE palyginimo operatoriumi.

Kodėl verta naudoti „WildCards“?

Jei esate susipažinę su SQL naudojimu, galite pagalvoti, kad galite ieškoti bet kokių sudėtingų duomenų naudodami sąlygą SELECT ir WHERE. Tada kam naudoti pakaitos simbolius?

Prieš atsakydami į šį klausimą, pažvelkime į pavyzdį. Tarkime, kad „Myflix“ vaizdo bibliotekos rinkodaros skyrius vykdė rinkodaros akcijas Teksaso mieste ir norėtų gauti atsiliepimų apie narių skaičių

registruotas iš Teksaso, norimai informacijai gauti galite naudoti šį SELECT sakinį kartu su WHERE sąlyga.

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

Kaip matote iš anksčiau pateiktos užklausos, sąlyga „WHERE“ tampa sudėtinga. Tačiau pakaitinių simbolių naudojimas supaprastina užklausą, nes galime naudoti kažką paprasto, pavyzdžiui, žemiau pateiktą scenarijų.

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

Trumpai tariant, pakaitos simboliai leidžia mums sukurti energijos paieškos sistemas į duomenų valdomas programas.

Pakaitos simbolių rūšys

% procentas

% procentinis simbolis naudojamas nurodant nulio (0) ar daugiau simbolių šabloną . Ji turi tokią pagrindinę sintaksę.

SELECT statements… WHERE fieldname LIKE 'xxx%';

ČIA

  • "SELECT utasítás ..." yra standartinė SQL SELECT komanda.
  • „WHERE“ yra raktinis žodis, naudojamas filtrui naudoti.
  • „LIKE“ yra palyginimo operatorius, naudojamas kartu su pakaitos simboliais
  • „xxx“ yra bet koks nurodytas pradinis šablonas, pvz., vienas ar daugiau simbolių, o „%“ atitinka bet kokį simbolių skaičių, prasidedantį nuo nulio (0).

Norėdami visiškai įvertinti pirmiau pateiktą teiginį, pažvelkime į praktinį pavyzdį

Tarkime, kad norime gauti visus filmus, kurių pavadinime yra žodis „kodas“, pakaitos procentą naudosime šablono atitikimui atlikti abiejose žodžio „kodas“ pusėse. Žemiau pateikiamas SQL sakinys, kurį galima naudoti norint pasiekti norimus rezultatus.

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

Minėto scenarijaus vykdymas „MySQL“ darbastalyje su „myflixdb“ suteikia mums žemiau pateiktus rezultatus.

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

Atkreipkite dėmesį, kad net jei paieškos raktinis žodis „kodas“ pasirodo pavadinimo pradžioje ar pabaigoje, jis vis tiek grąžinamas į mūsų rezultatų rinkinį. Taip yra todėl, kad į mūsų kodą įtraukiamas bet koks simbolių skaičius pradžioje, tada jis sutampa su šablonu „kodas“, po kurio eina bet koks simbolių skaičius.

Dabar pakeiskime savo pirmiau pateiktą scenarijų, kad pakaitos simbolis būtų įtrauktas tik paieškos kriterijų pradžioje.

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

Minėto scenarijaus vykdymas „MySQL“ darbastalyje su „myflixdb“ suteikia mums žemiau pateiktus rezultatus.

 
movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

Atkreipkite dėmesį, kad iš duomenų bazės buvo grąžintas tik vienas įrašas. Taip yra todėl, kad mūsų kodas atitinka bet kokį simbolių skaičių filmo pavadinimo pradžioje ir gauna tik įrašus, kurie baigiasi šablonu „kodas“.

Dabar pakeiskime pakaitos simbolių procentą į nurodyto modelio, kuris bus suderintas, pabaigą. Pakeistas scenarijus parodytas žemiau.

SELECT * FROM movies WHERE title LIKE 'code%';
Minėto scenarijaus vykdymas „MySQL“ darbastalyje su „myflixdb“ suteikia mums žemiau pateiktus rezultatus.
 
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

Atkreipkite dėmesį, kad iš duomenų bazės buvo grąžintas tik vienas įrašas. Taip yra todėl, kad mūsų kodas sutampa su visais pavadinimais, prasidedančiais šablonu „kodas“, po kurio eina bet koks simbolių skaičius.

_ pabraukti pakaitos simbolį

Pabraukiamas pakaitos simbolis naudojamas tiksliai sutapti su vienu simboliu . Tarkime, kad norime ieškoti visų filmų, kurie buvo išleisti 200x metais, kur x yra tiksliai vienas simbolis, kuris gali būti bet kokia vertė. Norėdami tai pasiekti, naudosime pabrauktą pakaitinę kortelę. Žemiau pateiktame scenarijuje parenkami visi filmai, kurie buvo išleisti „200x“ metais

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

Minėto scenarijaus vykdymas „MySQL“ darbastalyje su „myflixdb“ suteikia mums žemiau pateiktus rezultatus.

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

Atkreipkite dėmesį, kad į rezultatų rinkinį buvo sugrąžinti tik filmai, kuriuos bet kuris išleistų lauko metų personažas stebi 200. Taip yra todėl, kad pabraukiamas pakaitos simbolis atitiko modelį 200, po kurio seka bet kuris atskiras simbolis

NE kaip

Operatorius NOT loginis gali būti naudojamas kartu su pakaitos simboliais, norint pateikti eilutes, neatitinkančias nurodyto modelio.

Tarkime, kad norime gauti filmų, kurie nebuvo išleisti 200x metais. Norėdami gauti rezultatus, mes naudosime NOT loginį operatorių kartu su pabrauktu pakaitos simboliu. Žemiau yra scenarijus, kuris tai daro.

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

Atkreipkite dėmesį, kad į rezultatų rinkinį buvo sugrąžinti tik tie filmai, kurie prasideda nuo 200 metų išleistais metais. Taip yra todėl, kad pakaitos simbolių paieškoje naudojome NOT loginį operatorių.

Pabėgimo raktinis žodis.

ESCAPE raktinis žodis naudojamas norint išvengti šablonų atitikimo simbolių, tokių kaip (%) procentas ir pabraukimas (_), jei jie yra duomenų dalis.

Tarkime, kad norime patikrinti, ar nėra eilutės „67%“, kurią galime naudoti;

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

Jei norime ieškoti filmo „67% kalti“, tam galime naudoti žemiau pateiktą scenarijų.

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

Pastaba dvigubą " % %" į panašų sąlyga, pirmasis raudonos " % " traktuojamas kaip eilutės turi būti ieškoma. Kitas naudojamas suderinti bet kokį paskesnį simbolių skaičių.

Ta pati užklausa taip pat veiks, jei naudosime kažką panašaus

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

Santrauka

  • „Patinka“ ir „pakaitos“ galingi įrankiai, kurie padeda ieškoti duomenų, atitinkančių sudėtingus modelius.
  • Yra keletas pakaitos simbolių, tarp kurių yra procentas, pabraukimas ir charlist (nepalaikomi „MySQL“)
  • Procentinis pakaitos simbolis naudojamas sutapti bet kokiam simbolių skaičiui pradedant nuo nulio (0) ir daugiau.
  • Pabraukiamas pakaitos simbolis naudojamas tiksliai sutapti su vienu simboliu.