23. december 2007 - 20:16Der er
5 kommentarer og 1 løsning
Mysql select med flere order by
Hej
Jeg har denne select: SELECT d.category, d.imageid, d.id, d.showto , i.id, i.views, d.id as theid FROM designs as d, images as i WHERE d.showto = '1' AND d.imageid != '0' AND d.category = '0' AND d.imageid = i.id ORDER BY i.views DESC LIMIT 1
Jeg har 2 tabeller, og vil gerne hente ud sådan at der hentes ud fra dem hvor i.views er størst, men den dur ikke optimalt da der godt kan være flere rows i designs som har det samme images.id så theid bliver ikke altid det samme fordi mysql åbentbart vælger en af dem tilfældigt? Hvordan kan jeg gøre sådan at jeg sortere dem sådan at theid altid bliver det samme, f.eks. den der er størst
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
Mange tak det virkede bare helt fint :) Men så opstår der bare et andet problem, der kan godt være flere række i designs hvor imageid er lige med i.id men jeg vil gerne bare kun have 1 af dem, men ved ikke lige hvordan jeg skal gøre det. Kan jeg evt. gøre det med en group by og hvad skal jeg groupe dem efter?
Ah ja okay det kræver nok lidt ekstra forklaring, jeg køre den samme query flere gange, hvor jeg så laver om i den sådan at der ikke kommer den samme row(d.id != "id'et på det design der lige er blevet hentet.") men så kommer der bare en ny row hvor d.imageid er det samme, fordi der er flere rows i designs der har samme imageid.
Det er ikke ligefrem et eksempel - men du kan vel udelukke det på flere måder, fx i sql-sætningen "... AND d.imageid<>888..." eller ved at tage mere end een række ud " ... LIMIT 2", og så tage en række med et andet imageid, hvis der er mere end een.
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.