Tässä opetusohjelmassa selitetään MySQL ORDER BY -lauseke ja sen käyttö sekä ASC- että DESC-vaihtoehtojen kanssa. Kuvaamme tämän MySQL-lausekkeen yksinkertaisten esimerkkien avulla.

1. ORDER BY -lausekkeen syntaksi
2. ORDER BY W/O ASC tai DESC
3. ORDER BY DESC
4. ORDER BY Relative Position
5. ORDER BY Kaksi kenttää ASC & DESC

Käsitellään nyt kukin osio yksitellen.

MySQL ORDER BY -lauseke

MySQL:n SELECT-komento ei oletusarvoisesti palauta lajiteltua tulosjoukkoa. Näin ollen tuloksen lajittelemiseksi sinun on liitettävä SELECT-kyselyyn ORDER BY -lauseke. ORDER BY -lausekkeen avulla voimme saavuttaa seuraavat tulokset:

  • Toteuta tietueiden lajittelu yksittäisen/monen kentän mukaan
  • Lajittele rivit erillisten sarakkeiden mukaan nousevassa (ASC) tai laskevassa (DESC) järjestyksessä.

Seuraavassa havainnollistetaan ORDER BY -lausekkeen syntaksia:

Syntaksi

# MySQL ORDER BY ClauseSELECT field1, field2,...FROM target_tableORDER BY field1 , field2 ,...

Lauseke ORDER BY suorittaa oletusarvoisesti lajittelun nousevassa järjestyksessä. Termi ASC on lyhenne sanoista nouseva, kun taas DESC tarkoittaa laskevaa. DESC:tä varten sinun on mainittava se SELECT-kyselyssäsi.

Huomaa, että MySQL:ssä ORDER BY -lausekkeen kanssa voi määrittää jopa lausekkeen. Myös molemmat vaihtoehdot ASC ja DESC ovat valinnaisia tälle lausekkeelle.

Tässä on muutamia esimerkkitehtäviä harjoittelua varten.

MySQL ORDER BY -lausekkeen esimerkkejä

Katsotaan, miten ORDER BY -lauseketta käytetään MySQL:n SELECT-kyselyissä.

Order by -lausekkeen käyttäminen ilman asc/desc-vaihtoehtoa

Luotaan ensin havainnollistamiseksi taulukko nimeltä Sample ja täytetään se joillakin testitiedoilla.

CREATE TABLE Sample ( sample_id int NOT NULL, sample_name VARCHAR(20), vendor_name VARCHAR(20), sample_size INT );

Siirretään seuraavaksi testejä varten muutama dummy-tieto.

Sen jälkeen meidän on tarkistettava Sample-taulukkomme sisältö. Katso alla.

SELECT *FROM Sample;

Tulosteet ovat seuraavat:

Harjoitamme nyt ORDER BY -lauseketta ”vendor_name”-taulukkoon. Ja tarkkailemme MySQL-tietokannasta saatua tulosjoukkoa:

SELECT *FROM SampleORDER BY vendor_name;

Saat tuloksen, joka näyttää alla olevan tulosteen:

Voit arvioida yllä olevasta tulosjoukosta, että lajittelu tapahtui oletusarvoisesti nousevassa järjestyksessä.

Lajittele alenevassa järjestyksessä

Esimerkissä havainnollistamme ORDER BY -lausekkeen käyttämistä lajitteluun alenevassa järjestyksessä. Tätä varten meidän on määritettävä se nimenomaisesti.

Tässä on MySQL-lause, jolla lajitellaan alenevassa järjestyksessä:

SELECT *FROM SampleORDER BY vendor_name DESC;

SELECT-lausekkeen tuloste on:

Lajittele kentän mukaan suhteellisessa asemassa

MySQL:n ORDER BY-lausekkeella on mahdollista lajitella kentän mukaan SUHTEELLISESSA asemassa.

Kun SELECT-kyselyssä määritetään sarakkeiden nimet, ensimmäinen kenttä on sijalla yksi, toinen sijalla kaksi ja niin edelleen. Lisäksi voimme vahvistaa tämän tosiasian esimerkin avulla.

Tässä on SELECT-lause, joka näyttää kentät ja lajittelee ne suhteellisen sijainnin mukaan.

SELECT # pos_1 pos_2 pos_3 pos_4 sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY 4 DESC;

Tässä on tulosjoukko, jonka saat yllä olevan komennon suorittamisen jälkeen:

Voit nähdä, että MySQL lajitteli sample_size-kentän mukaan, joka vastaa neljättä saraketta.

ORDER BY:n käyttäminen lajitteluun kahdessa sarakkeessa

Olimme jo aiemmin maininneet, että ORDER BY:tä voi käyttää yhdessä tai useammassa kentässä. Tällaisessa tapauksessa MySQL käsittelee ensimmäistä kenttää ensisijaisena ja jälkimmäistä toissijaisena. Siksi se lajittelee ensin ensisijaisen ja sitten toisen.

Siten tässä esimerkissä näytämme ORDER BY:n kahdelle sarakkeelle, toinen kenttä ASC-kenttänä ja toinen DESC-kenttänä. Lisäksi meidän on lisättävä lisää tietueita osoittaaksemme, että myös toinen sarake lajitellaan.

Voit jättää huomiotta edellä alussa annetun INSERT-lausekkeen ja käyttää alla olevaa.

Nyt meillä on muutama rivi, joilla on samat myyjien nimet mutta erilaiset otoskoot. Ja lajittelemme nyt vendor_name (ensisijainen) ja sample_size (toissijainen) -kenttien perusteella.

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC, sample_size DESC;

Tämä MySQL-lause tuottaa tämän tuloksen:

Voit nähdä, että kaikki ensisijaisen kentän arvot lajiteltiin nousevaan järjestykseen. Ja tulosteesta näkyy myös, että lajittelu (DESC-luokassa) tapahtui myös toiselle.

Katsotaan nyt, mikä olisi tulos, jos olisimme lajitelleet vain myyjän nimen perusteella.

SELECT sample_id, sample_name, vendor_name, sample_sizeFROM SampleORDER BY vendor_name ASC;

Tämä komento antaa tulokseksi:

Yllä olevasta tuloksesta näemme, että Googleen ja Twitteriin kuuluvia rivejä ei lajiteltu niiden otosnimien perusteella.

Toivomme, että kun olet käärinyt tämän opetusohjelman loppuun, sinun pitäisi tuntea olosi mukavaksi MySQL:n ORDER BY -lausekkeen käytössä. Voit kuitenkin harjoitella lisää esimerkkien avulla saadaksesi varmuutta.

Jos haluat oppia SQL:ää tyhjästä syvällisesti, lue vaiheittainen MySQL-oppaamme.

Vastaa

Sähköpostiosoitettasi ei julkaista.