Pasirinkite naujausią įrašą pagal datą SQL

Pasirinkite Naujausia Irasa Pagal Data Sql



Dirbdami su SQL duomenų baze galite susidurti su atveju, kai pagal datą reikia gauti naujausią įrašą iš nurodytos lentelės. Tai gali būti skirta puslapių rūšiavimui, atsargų valdymui, stebėjimo tikslams ir kt.

Šiame vadove apžvelgsime įvairius metodus ir metodus, kuriuos galime naudoti norėdami pasirinkti naujausią įrašą iš lentelės pagal datą.

Duomenų pavyzdžiai

Demonstravimo tikslais naudojame Sakila duomenų bazę, kuri yra prieinama MySQL ir PostgreSQL skoniams.







Nedvejodami atsisiųskite ir importuokite pavyzdinę duomenų bazę į savo serverį. Taip pat galite naudoti bet kurį kitą duomenų rinkinį, jei reikia.



1 pavyzdys: UŽSAKYMAS PAGAL

Paprasčiausias ir paprasčiausias metodas, kurį galime naudoti norėdami gauti naujausią įrašą pagal datą, yra naudoti sąlygą SQL ORDER BY.



Galime išdėstyti įrašus mažėjančia tvarka pagal datos reikšmę ir apriboti rezultatą iki vienos eilutės.





Paimkite, pavyzdžiui, nuomos lentelę iš Sakilos pavyzdžių duomenų bazės. Jame yra stulpelis „rental_date“, kuris nurodo filmo nuomos datą.

Galime tai panaudoti norėdami parodyti, kaip naudoti sąlygą ORDER BY, kad iš lentelės būtų galima gauti naujausią įrašą.



PASIRINKTI*

IŠ nuomos

ĮSAKYMAS BY rental_date DESC

LIMIT 1 ;

Šiuo atveju naudojame sąlygą ORDER BY ir kaip tikslinį stulpelį perduodame „rental_date“. Taip pat užtikriname, kad nurodysime duomenų bazei, kad įrašai būtų tvarkomi mažėjančia tvarka.

Galiausiai taip pat apribojame išvesties įrašų, kurie turėtų grąžinti naujausią lentelės eilutę, skaičių.

2 pavyzdys: funkcijos Max() naudojimas

Ar žinojote, kad datos reikšmėms galime naudoti funkciją max()? Taip, galime naudoti paprastą SQL antrinę užklausą ir funkciją max() datos reikšmėms, kad gautume naujausią įrašą iš nurodytos lentelės.

Apsvarstykite šį pavyzdį:

PASIRINKTI*

IŠ nuomos

WHERE nuomos_data = (SELECT MAX(nuomos_data) IŠ nuomos);

Naudojant antrinę užklausą, lentelėje randama maksimali nuomos data. Pagrindinėje užklausoje turėtume gauti įrašus, kurių „rental_date“ yra lygi maksimaliai datai.

3 pavyzdys: lango funkcijos

Duomenų bazėse, kurios palaiko lango funkcijas, galime naudoti antrinę užklausą ir funkciją row_number(), kad gautume naujausią įrašą iš lentelės taip:

PASIRINKTI*

NUO (

PASIRINKTI*,

ROW_NUMBER() PABAIGTA ( ĮSAKYMAS BY rental_date DESC) AS rn

IŠ nuomos

) AS antrinė užklausa

KUR rn = 1 ;

Pateiktame pavyzdyje antrinė užklausa kiekvienai eilutei priskiria eilutės numerį pagal stulpelį „rental_date“ mažėjančia tvarka, naudojant lango funkciją ROW_NUMBER().

Tada išorinė užklausa parenka visus stulpelius iš antrinės užklausos, kurios eilutės numeris yra 1, ir veiksmingai pasirenka naujausią (-us) nuomos įrašą (-us).

Išvada

Šiame įraše ištyrėme įvairius metodus ir būdus, kuriuos galime naudoti norėdami gauti naujausią įrašą pagal datą.