Tässä oppaassa opastamme sinua eri menetelmien ja tekniikoiden avulla, joiden avulla voimme valita viimeisimmän tietueen taulukosta päivämäärän perusteella.
Esimerkkitiedot
Esittelytarkoituksiin käytämme Sakila-näytetietokantaa, joka on saatavilla MySQL- ja PostgreSQL-makuille.
Voit vapaasti ladata ja tuoda näytetietokannan palvelimellesi. Voit myös käyttää mitä tahansa muuta tietojoukkoa tarpeen mukaan.
Esimerkki 1: TILAUS
Yksinkertaisin ja yksinkertaisin tapa, jolla voimme hakea viimeisimmän tietueen päivämäärän mukaan, on käyttää SQL ORDER BY -lausetta.
Voimme järjestää tietueet laskevassa järjestyksessä päivämäärän arvon perusteella ja sitten rajata tuloksen vain yhteen riviin.
Otetaan esimerkiksi vuokrapöytä Sakilan näytetietokannasta. Se sisältää 'rental_date' -sarakkeen, joka ilmaisee päivämäärän, jolloin elokuva on vuokrattu.
Voimme käyttää tätä osoittamaan, kuinka ORDER BY -lausetta käytetään viimeisimmän tietueen hakemiseen taulukosta.
VALITSE *
vuokrauksesta
TILAUS Vuokrauspäivämäärän mukaan DESC
RAJA 1 ;
Tässä tapauksessa käytämme ORDER BY -lausetta ja välitämme kohdesarakkeena 'vuokrapäivämäärän'. Varmistamme myös, että kehotamme tietokantaa järjestämään tietueet laskevassa järjestyksessä.
Lopuksi rajoitamme myös tulostietueiden määrää, joiden pitäisi palauttaa taulukon viimeisin rivi.
Esimerkki 2: Max()-funktion käyttö
Tiesitkö, että voimme käyttää max()-funktiota päivämääräarvoissa? Kyllä, voimme käyttää yksinkertaista SQL-alikyselyä ja max()-funktiota päivämääräarvoissa viimeisimmän tietueen hakemiseen tietystä taulukosta.
Harkitse seuraavaa esimerkkiä:
VALITSE *vuokrauksesta
WHERE vuokra_pvm = (VALITSE MAKSIMI(vuokra_pvm) vuokrauksesta);
Alakyselyn avulla löydät taulukosta enimmäisvuokrapäivämäärän. Pääkyselyssä meidän pitäisi hakea tietueet, joiden 'vuokrapäivämäärä' on yhtä suuri kuin enimmäispäivämäärä.
Esimerkki 3: Ikkunatoiminnot
Ikkunatoimintoja tukevissa tietokannoissa voimme käyttää alikyselyä ja row_number()-funktiota uusimman tietueen hakemiseen taulukosta seuraavasti:
VALITSE *FROM (
VALITSE *,
ROW_NUMBER() YLI ( TILAUS BY rental_date DESC) AS rn
vuokrauksesta
) AS-alikysely
MISSÄ rn = 1 ;
Annetussa esimerkissä alikysely määrittää kullekin riville rivinumeron 'vuokrapäivämäärä'-sarakkeen perusteella laskevassa järjestyksessä ROW_NUMBER()-ikkunafunktion avulla.
Ulompi kysely valitsee sitten kaikki sarakkeet alikyselystä, jossa rivinumero on 1, ja valitsee käytännössä uusimmat vuokratietueet.
Johtopäätös
Tässä viestissä tutkimme erilaisia menetelmiä ja tekniikoita, joita voimme käyttää viimeisimmän tietueen hakemiseen päivämäärän perusteella.