V tejto príručke vás prevedieme rôznymi metódami a technikami, ktoré môžeme použiť na výber najnovšieho záznamu z tabuľky na základe dátumu.
Vzorové údaje
Na demonštračné účely používame vzorovú databázu Sakila, ktorá je dostupná pre verzie MySQL a PostgreSQL.
Neváhajte si stiahnuť a importovať vzorovú databázu na váš server. Podľa potreby môžete použiť aj akýkoľvek iný súbor údajov.
Príklad 1: OBJEDNAŤ PODĽA
Najzákladnejšou a najjednoduchšou metódou, ktorú môžeme použiť na získanie najnovšieho záznamu podľa dátumu, je použitie klauzuly SQL ORDER BY.
Záznamy môžeme usporiadať v zostupnom poradí na základe hodnoty dátumu a potom obmedziť výsledok len na jeden riadok.
Vezmite si napríklad tabuľku prenájmu zo vzorovej databázy Sakila. Obsahuje stĺpec „dátum_požičovne“, ktorý označuje dátum, kedy bol film vypožičaný.
Môžeme to použiť na demonštráciu toho, ako použiť klauzulu ORDER BY na získanie najnovšieho záznamu z tabuľky.
VYBRAŤ *
Z prenájmu
OBJEDNAŤ BY dátum_nájmu DESC
LIMIT 1 ;
V tomto prípade použijeme klauzulu ORDER BY a ako cieľový stĺpec odovzdáme „dátum_nájmu“. Zabezpečujeme tiež, aby sme databáze povedali, aby zoradila záznamy v zostupnom poradí.
Nakoniec tiež obmedzíme počet výstupných záznamov, ktoré by mali vrátiť najnovší riadok z tabuľky.
Príklad 2: Použitie funkcie Max().
Vedeli ste, že na hodnoty dátumu môžeme použiť funkciu max()? Áno, na získanie najnovšieho záznamu z danej tabuľky môžeme použiť jednoduchý poddotaz SQL a funkciu max() na hodnoty dátumu.
Zvážte nasledujúci príklad:
VYBRAŤ *Z prenájmu
WHERE dátum_nájmu = (SELECT MAX(dátum_nájmu) FROM výpožičky);
Pomocou poddotazu nájde z tabuľky maximálny dátum prenájmu. V hlavnom dotaze by sme mali načítať záznamy s „dátum_nájmu“ rovným maximálnemu dátumu.
Príklad 3: Funkcie okien
Pre databázy, ktoré podporujú funkcie okna, môžeme použiť poddotaz a funkciu row_number() na získanie najnovšieho záznamu z tabuľky takto:
VYBRAŤ *OD (
VYBERTE *,
ROW_NUMBER() VIAC ( OBJEDNAŤ PODĽA dátumu_nájmu DESC) AS rn
Z prenájmu
) AS poddotaz
KDE rn = 1 ;
V uvedenom príklade poddotaz priradí číslo riadku každému riadku na základe stĺpca „dátum_nájmu“ v zostupnom poradí pomocou funkcie okna ROW_NUMBER().
Vonkajší dotaz potom vyberie všetky stĺpce z poddotazu, kde je číslo riadku 1, čím sa efektívne vyberú najnovšie záznamy o prenájme.
Záver
V tomto príspevku sme preskúmali rôzne metódy a techniky, ktoré môžeme použiť na získanie najnovšieho záznamu na základe dátumu.