Just nu i M3-nätverket
Jump to content

TOP8 i SQLsats


RickJung

Recommended Posts

Hejsan. Har hört att man ska kunna plocka ut dom t.ex 8 senaste posterna i en databas med en SQLsats. Hr ser den ut.

 

SELECT TOP8 FROM tabell

 

fungerar ju inte=(

Link to comment
Share on other sites

det beror lite på vad du menar med de "8 senaste posterna".

 

Om du menar de 8 senast inlagda (INSERT) raderna finns det ett något invecklat sätt.

 

SELECT COUNT(*) FROM tabellnamn;

 

SELECT * FROM tabellnamn LIMIT x,8;

 

där x är det värde du får av den första frågesatsen -1 för indexeringen börjar på 0. (SELECT * FROM tabellnamn LIMIT 0,1; ger den första raden.)

 

LIMIT x,y där x=1:a raden du vill ha och y=antal rader som ska plockas ut

 

Detta funkar inte om du vill ha de senaste 8 rader som blivit ändrade (med UPDATE).

 

Jag har inte provat det själv men åtmintonde MySQL har ett flertal tid- och datum funktioner som du kan prova med och det följer med en ganska omfattande dokumentation på syntax och andra viktiga detaljer i deras distribution.

MySQL hitar du här: http://ftp.sunet.se/pub/unix/databases/relational/mysql/

 

Ifall det är någon annan som har ett bättre förslag vill jag gärna höra det.

Link to comment
Share on other sites

  • 2 weeks later...

det finns ett lättare sätt.

 

select top 8 * from tabell

order by cre_date desc

 

detta sats resulterar i att de 8 senast inlagda posterna visas.

 

om det skulle vara så att det är fler än 8 rader som har samma tidpunkt så kommer ändå bara 8 synas.

Link to comment
Share on other sites

jag glömde att säga att cre_date är ett datum/tid eller timestamp fält.

 

sorry.

Link to comment
Share on other sites

  • 1 year later...
Dan Eskekärr

 

TOP 8 funkar i bl.a. MS SQL men inte i MySQL. I MySQL funkar LIMIT 8

 

 

[inlägget ändrat 2001-11-20 21:49:17 av Dan Eskekärr]

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...