Selles juhendis tutvustame teile erinevaid meetodeid ja tehnikaid, mida saame kasutada kuupäeva alusel tabelist uusima kirje valimiseks.
Näidisandmed
Demonstreerimiseks kasutame Sakila näidisandmebaasi, mis on saadaval MySQL ja PostgreSQL maitsete jaoks.
Laadige näidisandmebaas alla ja importige oma serverisse. Vajadusel saate kasutada ka mis tahes muud andmestikku.
Näide 1: TELLI
Kõige elementaarsem ja lihtsaim meetod, mida saame kasutada viimase kirje toomiseks kuupäeva järgi, on SQL-i ORDER BY klausli kasutamine.
Saame kirjed järjestada kahanevas järjekorras, lähtudes kuupäeva väärtusest ja seejärel piirata tulemuse ühe reaga.
Võtame näiteks Sakila näidisandmebaasist laenutabeli. See sisaldab veergu „rental_date”, mis tähistab filmi laenutamise kuupäeva.
Seda saame kasutada selleks, et näidata, kuidas kasutada ORDER BY klauslit, et tuua tabelist uusim kirje.
VALI *
ALATES rentimisest
TELLI Rental_date DESC
LIIT 1 ;
Sel juhul kasutame klauslit ORDER BY ja edastame sihtveerguks „rental_date”. Samuti anname andmebaasile käsu kirjed järjestada kahanevas järjekorras.
Lõpuks piirame ka väljundkirjete arvu, mis peaksid tagastama tabelist viimase rea.
Näide 2: Funktsiooni Max() kasutamine
Kas teadsite, et saame kuupäeva väärtuste puhul kasutada funktsiooni max()? Jah, me saame kasutada lihtsat SQL-i alampäringut ja funktsiooni max() kuupäevaväärtuste puhul, et tuua antud tabelist uusim kirje.
Kaaluge järgmist näidet:
VALI *ALATES rentimisest
WHERE rentimise_kuupäev = (SELECT MAX(rent_date) FROM rent);
Alampäringu abil leitakse tabelist maksimaalne laenutuskuupäev. Põhipäringus peaksime tooma kirjed, mille väärtus 'rental_date' on võrdne maksimaalse kuupäevaga.
Näide 3: Aknafunktsioonid
Aknafunktsioone toetavate andmebaaside puhul saame kasutada alampäringut ja funktsiooni row_number(), et hankida tabelist uusim kirje järgmiselt:
VALI *FROM (
VALI *,
ROW_NUMBER() LÄBES ( TELLI BY rental_date DESC) AS rn
ALATES rentimisest
) AS-i alampäring
KUS rn = 1 ;
Antud näites määrab alampäring igale reale rea numbri, tuginedes veerule „rental_date” kahanevas järjekorras, kasutades akna funktsiooni ROW_NUMBER().
Seejärel valib välimine päring alampäringust kõik veerud, kus rea number on 1, valides tõhusalt uusimad rendikirje(d).
Järeldus
Selles postituses uurisime erinevaid meetodeid ja tehnikaid, mida saame kasutada kuupäeva alusel uusima kirje hankimiseks.