Avatar billede bremer Nybegynder
10. juni 2006 - 12:36 Der er 11 kommentarer og
1 løsning

DB udtræk af de 10 nyeste poster

Hej venner!

Ville høre om I lige kunne hjælpe her - Jeg ville gerne kunne lave et udtræk på min database, så de 10 nyeste poster fremkommer ud fra dette udtræk…

Andre steder på min side, bruger jeg denne strSQL måde til at lave et udtræk på HELE min database:

strSQL = "SELECT * FROM personer ORDER BY feltnavn"


hvad skal jeg skal her for kun, at få de nyeste 10 poster ud?

Venlig hilsen
Bremer
Avatar billede loproc Praktikant
10. juni 2006 - 12:46 #1
Du har jo nok et autoincrementing ID for hver række ikke? Ellers så lav et, og så lav flg. query:

SELECT * FROM personer ORDER BY id DESC, feltnavn LIMIT 10

Den giver dig de ti poster med højest id...
Avatar billede keysersoze Ekspert
10. juni 2006 - 12:52 #2
hvis der bruges mysql ja - med access er det

strSQL = "SELECT TOP 10 * FROM personer ORDER BY feltnavn"
Avatar billede Slettet bruger
10. juni 2006 - 12:54 #3
- har du et dato-felt i din tabel? For hvis du har er det det sikreste...

<%
strSQL = "select top 10 * from personer order by dato desc"
%>

\Dan
Avatar billede bremer Nybegynder
10. juni 2006 - 13:02 #4
Jeg får en fejl som ser sådan her du:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'feltnavn LIMIT 10'.

Hvad gør jeg forkert?
Avatar billede Slettet bruger
10. juni 2006 - 13:05 #5
formentligt det at det ikke er en MySQL database du har... men måske en Access... prøv dette i stedet:

<%
strSQL = "select top 10 * from personer order by dato desc"
%>

eller også...:

<%
strSQL = "select top 10 * from personer order by id desc"
%>

- den første er den bedste... hvis du vil være 100% sikker på at det er de 10 nyeste der skal vises... Men til gengæld er den første også ubrugelig hvis du ikke har et felt som hedder "dato" i din tabel...

\Dan
Avatar billede bremer Nybegynder
10. juni 2006 - 13:11 #6
TAK champ!

Det virker helt perfækt nu... :D

igen tak for din hjælp!

Hilsen Bremer!

PS. sender du lige et svar?
Avatar billede keysersoze Ekspert
10. juni 2006 - 13:13 #7
hvorfor er dato bedre at sortere på end id? dato-feltet kan til visse ting være smart at have ja, men resultatet bør være det samme omend id bør performe bedre.
Avatar billede bremer Nybegynder
10. juni 2006 - 13:18 #8
et lille ekstra spørgsmål...

hvis jeg nu ønsker ikke lige præcis ænsker top 10 men, at nummer 15 (fra toppen) til og med nummer 30.

Kan jeg så bare bruge BETWEEN '15' AND '30' ORDER BY id desc

eller hvordan - ville det kommer til at se ud?

>> Bremer
Avatar billede Slettet bruger
10. juni 2006 - 13:22 #9
>>keysersoze - min erfaring fortæller mig bare at man ikke altid kan regne med at en id (autonummerering) er sorteret korrekt i forhold til alderen... Altså man kan indstille sådan en autonummerering på mange måder - og derfor er det ikke altid givet at det laveste nummer er det ældste og så videre... Men det kan man derimod være helt sikker på med dato (Dato og klokkeslæt)...

\Dan
Avatar billede keysersoze Ekspert
10. juni 2006 - 13:27 #10
det er så bare de færreste der bruger et tilfældigheds-system til id-autonummering - både i oracle, access, mssql og mysql benyttes der somregel fortløbne numre... har i hvert fald aldrig stødt på nogle der gør det på anden måde - men det er klart, gør man det ikke og indsætter man dags dato/klokkeslet skal man sortere efter det.

mht nummer 15-30 kan du gøre det på flere måder - vælg de 30 første ud og spring de første 15 over i dit loop eller sig noget a la

select top 15 * from tabel where id not in (select top 15 id from tabel)
Avatar billede Slettet bruger
10. juni 2006 - 13:32 #11
OK keysersoze! Så er jeg da stolt af at være én af de første som du er stødt på som netop bruget "tilfældigt" replikerings-autonummerering...

hehe

\Dan
Avatar billede keysersoze Ekspert
10. juni 2006 - 13:49 #12
altså - hvis det kan gøre dig glad såh... ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester