mysql: laatste 5 entrys ophalen

Pagina: 1
Acties:

  • Daniel304
  • Registratie: December 2000
  • Laatst online: 14-08 14:02
Ik heb een mysql database en ik wil uit de database de laatste 5 entries halen hoe is dat het makkelijkst te doen.
Ik heb een int auto_increment en een date kolom misschien handig ?!?

B.v.D.

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Twee maal een RTF

Maar een hint :
code:
1
2
3
4
5
LIMIT

icm

ORDER BY

SIZE does matter.
"You're go at throttle up!"


  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

en een FAQ: wij groeten elkaar niet onderaan een post

  • Daniel304
  • Registratie: December 2000
  • Laatst online: 14-08 14:02
LIMIT werkt alleen maar door op te geven
LIMIT 1 5 dan displayed hij rij 1 tot 5 meer niet

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Op vrijdag 18 januari 2002 16:05 schreef Daniel304 het volgende:
Ik heb een mysql database en ik wil uit de database de laatste 5 entries halen ...
Op vrijdag 18 januari 2002 16:12 schreef Daniel304 het volgende:
LIMIT 1 5 dan displayed hij rij 1 tot 5 meer niet
Dat wil je toch :?

SIZE does matter.
"You're go at throttle up!"


  • Daniel304
  • Registratie: December 2000
  • Laatst online: 14-08 14:02
Soort van maar hij moet meteen de laatste 5 rijen pakken. Ik weet namelijk niet hoeveel rijen erin staan.
Ik vroeg me af of dit in 1 statement kan.

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Op vrijdag 18 januari 2002 16:08 schreef Skinny het volgende:

icm

ORDER BY
Dus even hier kijken : http://www.mysql.com/doc/S/E/SELECT.html

En even de uitleg bij ORDER BY bekijken.

SIZE does matter.
"You're go at throttle up!"


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Als je ze nou eens eerst ORDER BY 'd op die auto_increment'd ID en dan achterstovoren heb je toch de laatste 5 boven?

Dan LIMIT 1-5 en je hebt je laatste 5.

Op ID is alleen niet zo lekker.. kweet niet precies hoe MySQL omgaat met nieuwe entries.. maar alstie leegtes opvult werkt dit niet.. dan zul je gewoon data bij moeten gaan houden (altijd het veiligste)

  • The Noid
  • Registratie: Januari 2000
  • Laatst online: 17-03-2011
Op vrijdag 18 januari 2002 16:15 schreef Daniel304 het volgende:

Soort van maar hij moet meteen de laatste 5 rijen pakken. Ik weet namelijk niet hoeveel rijen erin staan.

Ik vroeg me af of dit in 1 statement kan.
Lees die posting van Skinny nou nog es goed door en denk dan even na voor je post...

This must be that Woodstock place mom and dad are allways talking about


  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Op vrijdag 18 januari 2002 16:18 schreef The_Noid het volgende:

[..]

Lees die posting van Skinny nou nog es goed door en denk dan even na voor je post...
Dank U.. ik dacht al dat ik gek was ;)

SIZE does matter.
"You're go at throttle up!"


  • JoostBaksteen
  • Registratie: December 2000
  • Laatst online: 27-03 19:32
SELECT piet FROM tabel ORDER BY id DESC LIMIT 0,5

sim-pel

  • Bartholomew
  • Registratie: Januari 2000
  • Laatst online: 12-04 12:56
Wordt jij ook zo ziek van die zonaamde experts hier? Direct RTFM roepen en een vaag antowoord geven ... help iemand of hou je mond! anyway ...

Als je een auto_increment hebt zijn de hoogste 5 nummers altijd de 5 laatst geplaatste velden. Dus je moet 5 velden uit de db halen en een ORDER BY op het auto_increment veld doen die van hoog naar laag sorteerd. Zoiets (uit mn hoofd):

SELECT * from 'tabel' ORDER BY id DESC LIMIT 1, 5;

  • Daniel304
  • Registratie: December 2000
  • Laatst online: 14-08 14:02
sorry had het verkeerd begrepen..
Ik zit een beetje te kloten omdat ik verschillende databases gehad heb op school (haal ze door elkaar) maar thanks a lot !!

Thanks Bartholomew
Op dat zat ik te wachten (jongens dat is toch niet zo moeilijk !!!)
Kijk dat jullie mysql zo goed kennen leuk maar er zijn andere mensen die het graag willen leren. en wat dat betreft kan je voor zulke dingen nooit te recht in de help pages van mysql...

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Op vrijdag 18 januari 2002 16:21 schreef Bartholomew het volgende:
Wordt jij ook zo ziek van die zonaamde experts hier? Direct RTFM roepen en een vaag antowoord geven ... help iemand of hou je mond! anyway ...
Ik ben ook geen expert, maar GROETEN onder een post is RTFAQ en als ie gezocht had (ook in de FAQ) dan had ie dit allang gevonden, en bovendien geef ik hem ook nog de richting waarin ie moet zoeken. Dat krijg ik ook altijd als ik hier iets vraagd, dus waarom in dit geval niet (staat trouwens OOK in de FAQ.

:(

SIZE does matter.
"You're go at throttle up!"


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Als je een auto_increment hebt zijn de hoogste 5 nummers altijd de 5 laatst geplaatste velden.
Volgens mij kun je MySQl ook zo instellen dat ie dat dat dus niet zo is en dat ie ruimtes opvult van verwijderde rows bij auto_increment... of zit dat weer anders met MySQL? Ik weet wel dat deze funcitonaliteit sterk afhangt van het type database dat je gebruikt..

Maar goed.. zal hier wel werken.. In de toekomst is het echte rwel verstandig om gewoon de datum bij te houden en op te slaan.. en daarop te sorteren.

  • Daniel304
  • Registratie: December 2000
  • Laatst online: 14-08 14:02
misschien beetje onduidelijk dat mail adres. Maar ik wist niet hoe lang ik online zou blijven dus dacht ik misschien maak ik het zo wel duidelijk dat ik graag een reply in mail wil.. Ik zal het de volghende keer er wel weer bij zetten..

Thanks you all though !!

  • Bartholomew
  • Registratie: Januari 2000
  • Laatst online: 12-04 12:56
Op vrijdag 18 januari 2002 16:24 schreef Skinny het volgende:

[..]

Ik ben ook geen expert, maar GROETEN onder een post is RTFAQ en als ie gezocht had (ook in de FAQ) dan had ie dit allang gevonden, en bovendien geef ik hem ook nog de richting waarin ie moet zoeken. Dat krijg ik ook altijd als ik hier iets vraagd, dus waarom in dit geval niet (staat trouwens OOK in de FAQ.

:(
lees ook het bericht boven de FAQ:
Helaas is het de laatste tijd weer de mode geworden om tegen nieuwe mensen op dit forum vervelend te gaan lopen doen. Een tijd geleden hebben we daarvoor de UTFS en de RTFM reply's verboden.
Deze zijn nu helaas vervangen door vrij aggressieve verwijzingen naar de FAQ. Deze zijn vanaf _NU_ ook niet meer toegestaan. Wanneer je dit te vaak doet krijg je hier een waarschuwing voor.

Kom je een topic tegen wat niet kan, meld dat dan aan een mod, het is hun taak om het op te lossen, en echt dat kunnen we wel!
We zijn vrijwel altijd te bereiken via ICQ, mail of liever nog SU.

Reply dus niet meer met: Zie de FAQ (quote uit de faq) maar meld het gewoon en reply niet.

Tot mijn spijt is deze maatregel blijkbaar nodig, jammer maar dan is het zo. Hopelijk kunnen we deze maatregel snel weer terugdraaiien.

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Heren, (neem ik aan)
Laten we stoppen met de beschuldigingen. Ik gaf zelf de FAQ hint, Skinny gaf wel de ORDER BY en LIMIT hint. Iets mag een newbee ook wel uitzoeken. misschien dat www.mysql.com/doc nog handig was geweest om erbij te geven dan had hij/zij het ook kunnen terugvinden in de manual. (Wat mij betreft nu over en uit)

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

Op vrijdag 18 januari 2002 16:33 schreef Bartholomew het volgende:

[..]

lees ook het bericht boven de FAQ:
[..]
Naast dat ik een reply plaats met een antwoord (zinnig) verwijs ik tevens naar de FAQ opdat het een volgende keer niet meer voorkomt. Ik kan ff niet meer vinden welke FAQ/Richtlijn dit staat, maar dat is niet tegen de regels. En anders geef je me maar aan.

Prettig weekend (Voor mij einde discussie, wordt toch eindeloos)

edit:
Dat zeg ik, gamma :)

SIZE does matter.
"You're go at throttle up!"


  • Bartholomew
  • Registratie: Januari 2000
  • Laatst online: 12-04 12:56
Op vrijdag 18 januari 2002 16:26 schreef Bosmonster het volgende:

[..]

Volgens mij kun je MySQl ook zo instellen dat ie dat dat dus niet zo is en dat ie ruimtes opvult van verwijderde rows bij auto_increment... of zit dat weer anders met MySQL? Ik weet wel dat deze funcitonaliteit sterk afhangt van het type database dat je gebruikt..

Maar goed.. zal hier wel werken.. In de toekomst is het echte rwel verstandig om gewoon de datum bij te houden en op te slaan.. en daarop te sorteren.
ja inderdaad als je de insert datum (met een timestamp) bijhoud is sorteren op de datum misschien wel nog veiliger ... (ik hou eigenlijk altijd een timestamp bij, je weet nooit waar het ooit nog eens goed voor zou kunnen zijn. toch?)

  • Femme
  • Registratie: Juni 1999
  • Laatst online: 11:05

Femme

Hardwareconnaisseur

Official Jony Ive fan

Als het een tabel is met veel records, je hebt een timestamp veld en je weet dat de laatste 5 records binnen een bepaalde tijd toegevoegd moeten zijn dan is het wat efficienter om de tijd in je query mee te nemen.

bijv. voor de laatste 2 weken: SELECT * FROM table WHERE time>UNIX_TIMESTAMP()-(86400*14) ORDER BY time DESC LIMIT 5

Anders zou die query traag worden op een tabel met een paar honderd duizend records. Als er dan ook nog een index op de kolom time zit gaat het nog sneller.

Eventueel nog verder beperken met AND <=UNIX_TIMESTAMP() . Bij InnoDB wil dat nog wel eens helpen als-ie onterecht denkt dat het niet efficient is om indexes te gebruiken (dat gebeurt als de query optimizer denkt dat het aantal te vinden records groter is dan een bepaald percentage van het totale aantal records in de tabel).
Pagina: 1