MySQL-jokerimerkit: tykkää, EI tykkää, paeta, (%), (_)

Sisällysluettelo:

Anonim

Mitä ovat MySQL-yleismerkit?

MySQL-jokerimerkit ovat merkkejä, jotka auttavat etsimään tietoja vastaamaan monimutkaisia ​​ehtoja. Jokerimerkkejä käytetään yhdessä LIKE-vertailuoperaattorin tai NOT LIKE -vertailuoperaattorin kanssa.

Miksi käyttää WildCardeja?

Jos olet perehtynyt SQL: n käyttöön, saatat ajatella, että voit etsiä monimutkaisia ​​tietoja käyttämällä SELECT- ja WHERE-lausekkeita. Miksi sitten käyttää jokerimerkkejä?

Ennen kuin vastaamme tähän kysymykseen, katsotaanpa esimerkkiä. Oletetaan, että Myflix-videokirjaston markkinointiosasto toteutti markkinointikampanjoita Texasin kaupungissa ja haluaisi saada palautetta jäsenten lukumäärästä

joka on rekisteröity Texasista, voit käyttää seuraavaa SELECT-käskyä WHERE-lausekkeen kanssa saadaksesi halutut tiedot.

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

Kuten yllä olevasta kyselystä näet, WHERE-lauseke muuttuu monimutkaiseksi. Jokerimerkkien käyttö yksinkertaistaa kyselyä, koska voimme käyttää jotain yksinkertaista, kuten alla esitetty komentosarja.

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

Lyhyesti sanottuna jokerimerkit antavat meille mahdollisuuden kehittää tehohakukoneet tietopohjaisiin sovelluksiimme.

Yleismerkkityypit

% prosenttiosuus

% -merkkiä käytetään määrittämään kuvio, jossa on nolla (0) tai enemmän merkkejä . Sillä on seuraava perussyntaksi.

SELECT statements… WHERE fieldname LIKE 'xxx%';

TÄSSÄ

  • "SELECT-käsky ..." on tavallinen SQL SELECT -komento.
  • "WHERE" on avainsana, jota käytetään suodattimen käyttämiseen.
  • "LIKE" on vertailuoperaattori, jota käytetään yleismerkkien yhteydessä
  • 'xxx' on mikä tahansa määritetty aloitusmalli, kuten yksi merkki tai enemmän, ja "%" vastaa mitä tahansa merkkien määrää nollasta (0) alkaen.

Jotta voisimme täysin ymmärtää yllä olevaa lausuntoa, tarkastellaan käytännön esimerkkiä

Oletetaan, että haluamme saada kaikki elokuvat, joissa on sana "koodi" osana otsikkoa, käytämme jokerimerkkiä prosenttiosuutena kuvion otteluun sanan "koodi" molemmin puolin. Alla on SQL-käsky, jota voidaan käyttää haluttujen tulosten saavuttamiseen.

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

Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan ​​antaa meille alla esitetyt tulokset.

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

Huomaa, että vaikka hakusana "koodi" näkyy otsikon alussa tai lopussa, se palautetaan silti tulosjoukossa. Tämä johtuu siitä, että koodissamme on mikä tahansa määrä merkkejä alussa ja sitten sama malli "koodi", jota seuraa mikä tahansa määrä merkkejä lopussa.

Muutetaan nyt yllä olevaa komentosarjaa siten, että yleismerkki lisätään vain hakukriteerien alkuun.

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

Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan ​​antaa meille alla esitetyt tulokset.

 
movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

Huomaa, että vain yksi tietue on palautettu tietokannasta. Tämä johtuu siitä, että koodimme täsmää minkä tahansa määrän merkkejä elokuvan nimen alussa ja saa vain tietueet, jotka päättyvät kuvioon "code".

Siirretään nyt yleismerkkien prosenttiosuus määritetyn mallin loppuun vastaava. Muokattu komentosarja näkyy alla.

SELECT * FROM movies WHERE title LIKE 'code%';
Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan ​​antaa meille alla esitetyt tulokset.
 
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

Huomaa, että vain yksi tietue on palautettu tietokannasta. Tämä johtuu siitä, että koodimme vastaa kaikkia otsikoita, jotka alkavat kuviosta "code", jota seuraa mikä tahansa määrä merkkejä.

_ alleviivattu jokerimerkki

Alaviivausmerkkiä käytetään vastaamaan täsmälleen yhtä merkkiä . Oletetaan, että haluamme etsiä kaikkia elokuvia, jotka julkaistiin vuosina 200x, missä x on täsmälleen yksi merkki, joka voi olla mikä tahansa arvo. Käytämme alaviivaa villikorttia sen saavuttamiseksi. Alla olevasta käsikirjoituksesta valitaan kaikki elokuvat, jotka julkaistiin vuonna 200x

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

Yllä olevan komentosarjan suorittaminen MySQL-työpöydällä myflixdb: tä vastaan ​​antaa meille alla esitetyt tulokset.

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

Huomaa, että vain elokuvat, joissa on 200 seuraajaa jokaisella hahmolla julkaistussa kenttävuodessa, on palautettu tulosjoukkoon. Tämä johtuu siitä, että alaviiva jokerimerkki täsmää kuvion 200 ja minkä tahansa yksittäisen merkin kanssa

Ei niin kuin

NOT-loogista operaattoria voidaan käyttää yhdessä yleismerkkien kanssa palauttamaan rivit, jotka eivät vastaa määritettyä mallia.

Oletetaan, että haluamme saada elokuvia, joita ei julkaistu vuonna 200x. Tulosten saamiseksi käytämme NOT-loogista operaattoria yhdessä alleviivatun yleismerkin kanssa. Alla on käsikirjoitus, joka tekee sen.

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

Huomaa, että vain elokuvat, jotka eivät ala 200: lla julkaisuvuonna, on palautettu tulosjoukkoon. Tämä johtuu siitä, että käytimme EI-loogista operaattoria yleismerkkihakumme yhteydessä.

Escape-avainsana.

ESCAPE-avainsanaa käytetään välttämään kuvion vastaavia merkkejä , kuten (%) prosenttiosuus ja alaviiva (_), jos ne ovat osa dataa.

Oletetaan, että haluamme tarkistaa merkkijonon "67%", jota voimme käyttää;

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

Jos haluamme etsiä elokuvaa "67% Guilty", voimme tehdä sen alla olevan skriptin avulla.

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

Huomaa kaksinkertainen " % %" samankaltaiseen lausekkeen ensimmäinen punaisella " % " käsitellään osana merkkijonoa etsitään. Toista käytetään vastaamaan mitä tahansa seuraavien merkkien määrää.

Sama kysely toimii myös, jos käytämme jotain

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

Yhteenveto

  • Tykkää- ja jokerimerkit - tehokkaat työkalut, jotka auttavat etsimään tietoja vastaamaan monimutkaisia ​​malleja.
  • On olemassa joukko jokerimerkkejä, jotka sisältävät muun muassa prosenttiosuuden, alaviivan ja luettelon (joita MySQL ei tue)
  • Prosenttimerkkiä käytetään vastaamaan mitä tahansa merkkejä nollasta (0) alkaen.
  • Alaviivausmerkkiä käytetään vastaamaan täsmälleen yhtä merkkiä.