2017-07-20 4 views
2

Ich habe Tabelle für Musikspuren mit Spalten ID, Künstler, Name, src, sample_start und level. Ich möchte zufällig 4 Reihen auswählen, aber mit verschiedenen Künstlern und einem bestimmten Level. Die nächste, die ich bekam, war dies, aber es ist nicht zufällig, da max ID ausgewählt ist.SQL zufällige 4 Zeilen mit unterschiedlichen Spalte

'SELECT * FROM tracks WHERE level = :level AND id IN 
(SELECT max(id) FROM tracks GROUP BY artist) 
ORDER BY RAND() LIMIT 4' 

Antwort

0

können Sie das versuchen?

SELECT * FROM tracks WHERE LEVEL = :LEVEL AND id IN (SELECT DISTINCT id FROM tracks ORDER BY RAND()) ORDER BY RAND() LIMIT 4 
+0

Es werden keine unterschiedlichen Künstler ausgewählt, IDs sind standardmäßig unterschiedlich. – user3684545

+0

Entfernen Sie einfach distinct und überprüfen Sie es. –

+0

Geben Sie auch einige Daten Beispiel für die Eingabe und Ausgabe, dann ist es besser. –

Verwandte Themen