Auswählen eines einzelnen Zufallsdatensatzes aus jeder Kategorie in MySQL
Um ein zufälliges Element aus jeder Kategorie in der angegebenen Datenbank abzurufen, ist ein zwei- Ein stufenweiser Ansatz wird empfohlen. Verwenden Sie zunächst eine Abfrage, um die Artikel- und Kategorietabellen in zufälliger Reihenfolge zu kombinieren:
SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND();
Diese Abfrage zeigt alle Artikel an, die ihren jeweiligen Kategorien in zufälliger Reihenfolge zugeordnet sind. Um die Auswahl auf ein Element pro Kategorie zu beschränken, verschachteln Sie die vorherige Abfrage in einer partiellen GROUP BY-Anweisung:
SELECT * FROM ( SELECT c.id AS cid, c.category, i.id AS iid, i.name FROM categories c INNER JOIN items i ON c.id = i.category ORDER BY RAND() ) AS shuffled_items GROUP BY cid;
Diese partielle GROUP BY stellt sicher, dass jede Kategorie nur ein zufällig ausgewähltes Element enthält. Es ist wichtig zu beachten, dass die ORDER BY-Klausel vor der GROUP BY-Klausel angewendet werden muss, damit dieser Ansatz ordnungsgemäß funktioniert.
Obwohl diese Methode möglicherweise nicht die schnellste ist, bietet sie eine zuverlässige Möglichkeit, einen einzelnen zufälligen Datensatz auszuwählen aus jeder Kategorie in Ihrer MySQL-Datenbank.
Das obige ist der detaillierte Inhalt vonWie wähle ich in MySQL einen zufälligen Datensatz aus jeder Kategorie aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!