Avatar billede mrjowns Novice
22. marts 2003 - 19:19 Der er 11 kommentarer og
1 løsning

SQL SELECT TOP fra MySQL...

Hej Eksperter,

Jeg har en MySQL tabel hvor der løbende kommer ny poster. Denne tabel indeholder poster med 10 forskellige emner (specifikt emne-id). Jeg skal bruge en SELECT-sætning der spørger efter den nyeste post i hver kategori! "SELECT * ... LIMIT 10" virker ikke, da emnerne ikke nødvendigvis står i rækkefølge - dvs. at der sagtens kan være 2 poster med emne-id = 2 og derefter 3 med emne-id = 6.

Hvordan kan jeg lave sådan en SQL-sætning?

--jowns--
Avatar billede hossein Nybegynder
22. marts 2003 - 19:36 #1
Hvad for en felt er unikke? en dato felt?
Det er en god ide at have en kolone med timestamp dvs. hvergang oprettes en ny rekord så indsættes dato+tid, den måde har mange fordele.
Avatar billede mortrr Praktikant
22. marts 2003 - 19:37 #2
Noget i stil med:
select emneid, max(postid) from emner group by emneid
Avatar billede mrjowns Novice
22. marts 2003 - 19:39 #3
hossein > det unikke felt hedder bare ID og der er også en EmneTime som er en slags timestamp!

--jowns--
Avatar billede mrjowns Novice
22. marts 2003 - 19:40 #4
mortrr > jeg skal ikke kun hente "emneid" ud af posterne, men *
Avatar billede mortrr Praktikant
22. marts 2003 - 19:47 #5
"nogen gange" går det fint i mysql at bruge:
select emneid, max(postid), emner.* from emner group by emneid
men af en eller anden grund kikser det til tider.
Avatar billede mortrr Praktikant
22. marts 2003 - 19:48 #6
Det burde vre nok med:
select max(postid), emner.* from emner group by emneid
Avatar billede hossein Nybegynder
22. marts 2003 - 20:08 #7
Jeg tænker på at lave en Temp tabel:
Select distinct Kategori,... from minTabel order by Emnetime desc

Nu skal du lave limit 10 udfra dette.
Avatar billede mrjowns Novice
22. marts 2003 - 20:09 #8
mortrr > hvorfor virker den ikke altid? Jeg skulle helst have en holdbar løsning!

hossein > har du nogen forslag?
Avatar billede hossein Nybegynder
22. marts 2003 - 20:37 #9
Nej desværre! hvis jeg finder på noget så vil jeg skrive til dig.
Avatar billede mortrr Praktikant
22. marts 2003 - 20:40 #10
Det er nok bare en gammel mistro fra tidligere versioner af mysql.
Hvis den virker på den version du har, så skal den nok blive ved.
Avatar billede mrjowns Novice
24. marts 2003 - 09:07 #11
Det gør den - coool!!! :oP Laver du et svar, så er der point på vej...! :o)

Tak for hjælpen! --jowns--
Avatar billede mortrr Praktikant
24. marts 2003 - 10:28 #12
Selv tak
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