MySQL Jokerimerkkien opetusohjelma: Tykkää, EI tykkää, Escape, ( % ), ( _ )

Mitä ovat MySQL Jokerimerkit?

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

Miksi käyttää jokerikortteja?

Jos olet perehtynyt SQL:n käyttöön, saatat ajatella, että voit etsiä mitä tahansa monimutkaista tietoa käyttämällä SELECT- ja WHERE-lauseita. 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äsenmäärästä

joka on rekisteröity Texasista, voit käyttää seuraavaa SELECT-lausetta yhdessä WHERE-lauseen kanssa saadaksesi haluamasi 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ö kuitenkin yksinkertaistaa kyselyä, koska voimme käyttää jotain yksinkertaista, kuten alla näkyvää komentosarjaa.

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

Lyhyesti sanottuna yleismerkkien avulla voimme kehittää tehokkaita hakukoneita tietopohjaisiksi sovelluksiksi.

Jokerimerkkien tyypit

% prosenttiosuus

% prosenttimerkkiä käytetään kuvion määrittämiseen nolla (0) tai enemmän merkkiä. Siinä on seuraava perussyntaksi.

SELECT statements... WHERE fieldname LIKE 'xxx%';

TÄÄLTÄ

  • "SELECT-lause…” on tavallinen SQL SELECT -komento.
  • "MILLÄ" on avainsana, jota käytetään suodattimen käyttöön.
  • LIKE on vertailuoperaattori, jota käytetään jokerimerkkien yhteydessä
  • 'xxx' on mikä tahansa määritetty aloituskuvio, kuten yksi merkki tai useampi, ja "%" vastaa mitä tahansa määrää merkkejä alkaen nollasta (0).

Ymmärtääksemme täysin yllä olevaa lausuntoa, katsotaanpa käytännön esimerkkiä

Oletetaan, että haluamme saada kaikki elokuvat, joiden otsikossa on sana "koodi", käyttäisimme prosenttiosuutta jokerimerkkiä suorittaaksemme mallin vastaavuuden sanan "koodi" molemmille puolille. Alla on SQL-lause, jota voidaan käyttää haluttujen tulosten saavuttamiseen.

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

Suoritetaan yllä oleva komentosarja MySQL työpöytä myflixdb:tä vastaan ​​antaa meille alla näkyvät 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 hakuavainsana "koodi" esiintyisi otsikon alussa tai lopussa, se palautetaan silti tulosjoukossamme. Tämä johtuu siitä, että koodimme sisältää minkä tahansa määrän merkkejä alussa ja sitten vastaa mallia "koodi", jota seuraa mikä tahansa määrä merkkejä lopussa.

Muokatkaamme nyt yllä olevaa skriptiämme sisällyttämään prosenttiosuuden jokerimerkki vain hakuehtojen alkuun.

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

Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan ​​antaa meille alla näkyvät tulokset.

movie_id title director year_released category_id
7 Davinci Code NULL NULL 6

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

Siirretään nyt prosentuaalinen jokerimerkki määritetyn mallin loppuun. Muokattu skripti näkyy alla.

SELECT * FROM movies WHERE title LIKE 'code%';
Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan ​​antaa meille alla näkyvät tulokset.
movie_id title director year_released category_id
4 Code Name Black Edgar Jimz 2010 NULL

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

_ alaviiva jokerimerkki

Alaviivaa jokerimerkkiä käytetään vastaa täsmälleen yhtä merkkiä. Oletetaan, että haluamme etsiä kaikkia elokuvia, jotka on julkaistu vuosina 200x, joissa x on täsmälleen yksi merkki, joka voi olla mikä tahansa arvo. Käytämme alaviivaa jokerikorttia saavuttaaksemme sen. Alla oleva käsikirjoitus valitsee kaikki elokuvat, jotka julkaistiin vuonna "200x"

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

Suoritetaan yllä oleva komentosarja MySQL työpenkki myflixdb:tä vastaan ​​antaa meille alla näkyvät 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ä tulossarjaamme on palautettu vain elokuvat, joilla on 200 seuraajaa joltakin hahmolta julkaisuvuonna. Tämä johtuu siitä, että alaviiva jokerimerkki vastasi kuviota 200, jota seuraa mikä tahansa yksittäinen merkki

Ei niin kuin

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

Oletetaan, että haluamme saada elokuvia, joita ei julkaistu vuonna 200x. Käyttäisimme loogista NOT-operaattoria yhdessä alaviivan yleismerkin kanssa saadaksemme tulokset. 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 vain elokuvat, jotka eivät ala julkaisuvuonna 200:lla, on palautettu tulossarjaamme. Tämä johtuu siitä, että käytimme loogista NOT-operaattoria jokerimerkkihaussa.

Escape-avainsana

ECAPE-avainsanaa käytetään pakokuvioita vastaavia merkkejä kuten (%) prosenttiosuus ja alaviiva (_), jos ne ovat osa tietoja.

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

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

Jos haluamme etsiä elokuvaa "67% Guilty", voimme käyttää alla olevaa käsikirjoitusta tehdäksesi sen.

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

Huomaa kaksinkertainen "%%" LIKE-lauseessa, ensimmäinen punaisella "%” käsitellään osana haettavaa merkkijonoa. Toista käytetään vastaamaan mitä tahansa seuraavien merkkien määrää.

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

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

Yhteenveto

  • Tykkää ja jokerimerkit tehokkaat työkalut, jotka auttavat etsimään tietoja, jotka vastaavat monimutkaisia ​​​​malleja.
  • On olemassa joukko yleismerkkejä, jotka sisältävät prosenttiosuuden, alaviivan ja merkkiluettelon (ei tue MySQL ) muiden joukossa
  • Prosentuaalista jokerimerkkiä käytetään vastaamaan mitä tahansa merkkejä alkaen nollasta (0) tai enemmän.
  • Alaviivaa jokerimerkkiä käytetään vastaamaan täsmälleen yhtä merkkiä.