Avatar billede jalaboo Nybegynder
07. marts 2002 - 18:26 Der er 7 kommentarer

Den sidste nye besked, grupperet efter userid

Jeg har en tabel der ser således ud:

tagwall : [ id | userid | msg ]

Hvis jeg vil have den sidste nye besked gør jeg således:
SELECT * FROM tagwall ORDER BY id DESC;

Hvis jeg vil have den sidste nye besked, grupperet efter userid, ville jeg gøre sådan:
SELECT * FROM tagwall GROUP BY userid ORDER BY id DESC;

Men så får jeg ikke den sidste nye besked, grupperet efter userid. Hvorfor ?


Min tabel kan laves således:

CREATE TABLE tagwall (
  id int(10) unsigned NOT NULL auto_increment,
  userid int(10) unsigned NOT NULL default '0',
  msg text NOT NULL,
  PRIMARY KEY  (id),
) TYPE=MyISAM;
Avatar billede Slettet bruger
07. marts 2002 - 18:44 #1
Du får vel, hvad der tilsvarer:

userid: 3 - id: 10
userid: 3 - id: 5

userid: 9 - id: 9
userid: 9 - id: 8

userid: 1 - id: 12
userid: 1 - id: 1

osv.

Ikke også?

Desuden kan jeg ikke anbefale dig at benytte id (auto_increment) som indikator for tiden. Det er ikke til at stole på. Du bør indsætte et timestamp i tabellen, når du indsætter en besked. Og sortere efter dette timestamp i stedet.
Avatar billede jalaboo Nybegynder
07. marts 2002 - 19:19 #2
tjoo, men hvordan henter jeg så de sidste nye beskeder, hvor der er en forskellig userid til hver ?
Tak for rådet, iøvrigt :)
Avatar billede jalaboo Nybegynder
08. marts 2002 - 09:42 #3
forstår du hvad jeg mener ?
Avatar billede trayzor Nybegynder
09. marts 2002 - 15:22 #4
Mener du sådan at en bruger med f.eks. userid=3 kun dukker op en gang på listen..?
Avatar billede jalaboo Nybegynder
12. marts 2002 - 13:15 #5
trayzor: ja :)
Avatar billede trayzor Nybegynder
12. marts 2002 - 13:32 #6
Prøv den her:
SELECT DISTINCT userid, id FROM tagwall GROUP BY userid ORDER BY id DESC;
Avatar billede kasperbc Nybegynder
15. oktober 2004 - 20:46 #7
Takker trayzor lige hva jeg manglede :P
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