Avatar billede falslev Nybegynder
03. juni 2004 - 00:25 Der er 15 kommentarer og
1 løsning

Kan man få LAST_INSERT_ID() til at vælge flere end den sidste?

Jeg ønkser at den skal være de 10 sidste indsatte f.eks.
Kan man det?
Avatar billede dennismp Nybegynder
03. juni 2004 - 00:29 #1
nej :)
Avatar billede avlund Nybegynder
03. juni 2004 - 00:29 #2
Avatar billede dennismp Nybegynder
03. juni 2004 - 00:30 #3
Hvis du bruger en auto_increment id (hvilket du nok gør siden du spørger om last_insert_id()) så kan du jo bare gøre:

SELECT id FROM tabel ORDER BY id DESC LIMIT 10;

Så får du de ti sidste/højeste id'er. Men det kræver altså at id'erne er fortløbende.
Avatar billede arne_v Ekspert
03. juni 2004 - 06:36 #4
Øh

SELECT id FROM tabel ORDER BY id DESC LIMIT 10;

kræver ikke at de er fortløbende - kun at de er stigende, hvilket de er.

Men det er jo samme princip som:

SELECT id FROM tabel ORDER BY id DESC LIMIT 1;

Altså de sidste X indsatte, mens LAST_INSERT_ID er sidst indsatte for
connection.

Stor forskel i fler bruger sammenhæng !
Avatar billede falslev Nybegynder
03. juni 2004 - 09:57 #5
Jeg har også tidligere bare sagt:
SELECT id FROM tabel ORDER BY id DESC LIMIT 0,10;

Men det lagde min database ned da den skulle over 37000 linier igennem hver gang for at finde ud af at sortere dem.

Derfor hvis jeg kunne bremse den ved at sige det kun var de sidste 10 indsatte.
Avatar billede dennismp Nybegynder
03. juni 2004 - 10:00 #6
arne_v: Det var faktisk det jeg mente med forløbende. Jeg har vist en forkert opfattelse af ordet.

falslev: 37.000 linjer? Det lyder lidt voldsomt at du kan lægge din database ned på baggrund af det.. Har du lavet et index på id?
Avatar billede falslev Nybegynder
03. juni 2004 - 10:35 #7
Har både id som primær og uniq.
Burde det ikke være nok?
Avatar billede dennismp Nybegynder
03. juni 2004 - 10:45 #8
Jow. Det lyder bare lidt underligt (på min server er 37000 rækker ikke noget der får den i knæ, og den er ikke speciel stor).

Men det kan være at arne har nogle forslag.
Avatar billede arne_v Ekspert
03. juni 2004 - 12:33 #9
"fortløbende" opfatter jeg som "stigende uden huller"

primary key er i sig selv unik, så der er ikke nogen grund til at
tilføje et unikt index

Jeg forstår heller ikke helt performance problemet.
Avatar billede arne_v Ekspert
16. juni 2004 - 22:19 #10
Tid at få afsluttet spørgsmålet ?
Avatar billede falslev Nybegynder
17. juni 2004 - 09:26 #11
Undskyld men hvordan lukker jeg?
Avatar billede arne_v Ekspert
17. juni 2004 - 09:56 #12
Du beder dem som har hjulpet dig ligge et svar og når de har gjordt det så accepterer
du svaret.

Hvis du synes at problemet stadig er uløst, så prøv og post en status og
se om der kan komme en løsning på bordet.

NB: "kan ikke lade sig gøre" er også et validt svar som bør give point hvis det
er korrekt.
Avatar billede falslev Nybegynder
22. juni 2004 - 09:02 #13
Dennis og arne v laver i ikke et svar hver så i kan få point.
Avatar billede arne_v Ekspert
22. juni 2004 - 09:42 #14
gerne
Avatar billede falslev Nybegynder
23. juni 2004 - 10:37 #15
Da Dennismp ikke giver lyd fra sig lukker jeg spørgsmålet nu :)
Avatar billede arne_v Ekspert
23. juni 2004 - 10:51 #16
falslev>

ok

dennis>

Hvis du giver lyd fra dig så overfører jeg de 15p til dig.
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
Computerworld tilbyder specialiserede kurser i database-management

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