Zufälliger aus 10 Bewertungen

mtk-flo

Erfahrenes Mitglied
Wie muss ich die Abfrage machen, wenn ich von meinen 10 besten Bewertungen einen zufälligen Tupel haben will ?
 
Vielleicht hilft dir das...

Code:
RAND(spalte)

Hättest durch die Suche sicher etwas gefunden :suchen:
 
Dann soll er doch auch einfach Datensatz sagen :)
Nein Spaß, aber so viel ich bislang auch mit Datenbanken gearbeitet habe, der Begriff ist mir noch nie untergekommen. Hört sich aber auch nicht besonders toll an! :D
 
Also das mit RAND() wusste ich schon und so arbeite ich im Moment.
Ich habe folgende Daten

Bsp:

id | wert
1 | 4.32
2 | 3.90
3 | 2. 84
4 | 2.23
5 | 0
6 | 4.89

jetzt möchte ich hiervon einen der der besten haben.... zufällig ....

SELECT * FROM foo ORDER BY wert, RAND() LIMIT 3;

Geht das ?
 
suye hat gesagt.:
Dann soll er doch auch einfach Datensatz sagen :)
Nein Spaß, aber so viel ich bislang auch mit Datenbanken gearbeitet habe, der Begriff ist mir noch nie untergekommen. Hört sich aber auch nicht besonders toll an! :D
Ich find' den Begriff eigentlich Klasse, da er viel näher an der relationalen Algebra ist, auf der das ganze Konzept beruht. Und "Datenbanken" ist eines der ganz wenigen Themen bei der die Theorie (zumindest mir) wesentlich zum Verständnis der Anwendung geholfen hat.

@mtk-flo: Ich denke, Du wirst damit die drei schlechtesten erhalten(, wenn ein größerer Wert besser ist).
Du musst also andersrum sortieren. Die zufällige "Sortierung" wird auch nicht beachtet, solange es einen Unterschied bei "wert" gibt.
Ein Subquery könnte helfen:
Code:
#ermittle den einen zufälligen
SELECT temp.id, temp.wert FROM 
  #aus den drei Besten
  (SELECT * FROM foo ORDER BY wert DESC LIMIT 3)
    AS temp
ORDER BY RAND() LIMIT 1
ich bin mir jetzt aber nicht sicher, ob da irgendwo ein Syntaxfehler drin ist.

Gruß hpvw
 
Zurück