..okey.. her kommer så problemet.. Jeg vil nu hente point for opgaveid=10 men kun den tubel har den højeste indeksværdi... i ovenstående eksempel bliver det så indeks=6 med point=7, fordi den har højest indeksværdi.
ja det vil virke hvis man ikke skulle tage point fra mængden af opgaver.. og stadig undgå en løkke med f.eks. while...
Jeg ved der er noget der hedder distinct.. men hvordan bort sortere den en mængde?
.. jeg skal lave en statement som i ét huk tager point tilhørende alle forskellige opgaveid'er i tabellen og stadig kun få de points som har den højeste indeks.. i eksemplet fra før bliver mængden derved:
>>Jeg ved der er noget der hedder distinct.. Distinct i MySql virker på den måde, at den ikke selecter rækker, der er fuldkommen ens. Det vil sige, at rækker hvor ALLE felter er ens, kun vises én gang. I andre sql-versioner har man mulighed for at skrive distinct(opgaveid), hvor den så fjerner rækker hvor opgaveid er ens, men den mulighed har du ikke i MySql.
Oh my god... det lyder ikke godt.!... jeg sidder og arbejder med en "work around".. men vi taler om mindst to løkker.. med et par itterative kald.. ikke FEDT - slet ikke fedt.
Så hvis nogen kan give et svar.. jamen så tager jeg imod med kyshånd.
Hvad med flg. pseudokode? sidste_opgaveid = ""; select * from tabel order by opgaveid, index desc Sålænge der er rækker { Hvis opgaveid ikke = sidste_opgaveid Print opgaveid, points; sidste_opgaveid = opgaveid; ellers dette opgaveid er allerede brugt slut-hvis }
Afhængigt af sammenhængen, du skal bruge det i, vil du måske kunne burge:
select opgaveid, max(point) as point from opgave group by opgave id;
Så længe du holder "indeks" ud af det, er det ikke noget problem, og har du brug for indeks, vil du kunne lave oplag på det med: select indeks from opgave where point=? and opgave=?
nemlig.. ikke noget største point.. men blot point som er sidst lagt ind i tabellen.. dvs. den med den største indeks.
mht. eky's pseudokode.. du har fuldstændig ret i din betragtning.. hvordan gør man dette så det går stærkt.. ellers får jeg nemlig timeouts.. har nemlig prøvet noget lignende.
Hvor mange rækker er der i din tabel? Det lyder underligt, at du skulle få en timeout, med mindre at du looper. Jeg har forsøgt med min pseudokode, og det går hurtigt. Se http://www.test.eky.dk/opgaver.php
Ja det går faktisk rigtig stærkt.. skørt at det ikke gør det hos mig.. jeg har en tabel med 3500 rækker.... hmm skørt.. anyway.. jeg looper meget det er koorekt.. men alligevel - skørt.
hmmm koden var ikke helt ens.. men fino.. thx eky :)
øvmmm.. har du indgivet nogle "svar" eky?.. for så vidt jeg kan se - kan jeg ikke give dig point?.. jeg tror du blot har lavet kommentarer - og de giver ikke anledning til point. Så lav lige en sidste lille hilsen som et "svar" :)
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.