2012-03-27 8 views
-1

Ich möchte eine zufällige Zeile pro Gruppe für insgesamt N Zeilen auswählen können. Beispiel:MySQL - Wählen Sie einen zufälligen Eintrag pro Gruppe mit N Gesamtzeilen

einfaches Tabellenschema:

id shoetype shoename

jede "Gruppe" ist ein shoetype, und es gibt mehr shoenames pro shoetype. Ich möchte in der Lage sein, insgesamt N Reihen, aber nur eine zufällige shoename von jedem shoetype zu wählen.


SELECT * FROM table GROUP BY shoetype ORDER BY RAND() nicht zufällig einen von jedem Typ zu erhalten scheint aber nur die erste shoetype ... ich bin nicht sicher, wie eine Abfrage zu schreiben, einen gelegentliche aus jeder Gruppe zu bekommen?

Antwort

0
+0

dies scheint nicht zu funktionieren, wenn Sie einen zufälligen Eintrag pro Gruppe wollen – ina

+0

Es tut, wenn Sie einen bestimmten Gruppennamen, (wählen Sie RAND SUBSELECT) als rand_id Dann schließe inner die rand_id in einem Datensatz, um die verbleibenden Daten zu erhalten –

0

wählen zu erreichen * aus (select * from mytable Auftrag von rand()) als MT Gruppe von shoetype

ist es mein Schuss. Dies verwirrt die Tabelle Reihenfolge, dann macht eine normale Art von Gruppe von

Verwandte Themen