Avatar billede michaeltryl Seniormester
03. maj 2013 - 18:30 Der er 8 kommentarer og
1 løsning

select en tilfældig hvor set er mindst

Jeg har en tabel med en masse opgaver.
hver gang en opgave er indlæst lægges der 1 til feltet "opgave_set"
Mit ønske er nu at hive en tilfældig opgave ud hvor "opgave_set" er mindst.
Kan det lade sig gøre?
Avatar billede jakobdo Ekspert
03. maj 2013 - 19:48 #1
Jeg kan ikke lige klare det i en sql.
Men er det ikke noget ala:

SELECT min(opgave_set) FROM opgaver

udlæse det resultat og lave en:

SELECT * FROM opgaver WHERE opgave_set = "MIN_FRA_FØR" ORDER BY RAND()
Avatar billede michael_stim Ekspert
03. maj 2013 - 20:17 #2
Kunne man ikke skrive noget á la:

SELECT * FROM opgaver WHERE opgave_set = (SELECT DISTINCT MIN(opgave_set) FROM opgaver) ORDER BY RAND(), LIMIT 1
Avatar billede michaeltryl Seniormester
03. maj 2013 - 20:42 #3
jeg brugte jakobdo's forslag
Tak for det.
bare kom med et svar.
Avatar billede jakobdo Ekspert
03. maj 2013 - 21:29 #4
Svar!

Kan du ikke bruge michael_stim, det er trods alt en "oneliner" :o)
Avatar billede jakobdo Ekspert
03. maj 2013 - 21:32 #5
Har netop testet michael_stims løsning.
Distinct kan udelades.

Så dette kunne være en "oneliner" løsning ja:

SELECT *
FROM  `opgaver`
WHERE  `opgave_set` = (
SELECT MIN( `opgave_set` )
FROM  `opgaver` )
ORDER BY RAND( )
LIMIT 1
Avatar billede arne_v Ekspert
04. maj 2013 - 01:55 #6
Hvad med:

SELECT *
FROM opgaver
ORDER BY opgave_set,RAND()
LIMIT 1

?
Avatar billede michael_stim Ekspert
04. maj 2013 - 09:07 #7
Det er klart arne_v, hvorfor gøre det mere besværligt end det er ;-) Du får jo mindste opgave_set med ordet by.
Avatar billede jakobdo Ekspert
04. maj 2013 - 13:06 #8
KISS!!
Smukt Arne_V din gamle svinger. :o)
Avatar billede jakobdo Ekspert
04. maj 2013 - 13:36 #9
Takker for svar, omend Arne_Vs er det mest elegante.
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