Heim > Datenbank > MySQL-Tutorial > Wie wähle ich in MySQL einen zufälligen Datensatz aus jeder Kategorie aus?

Wie wähle ich in MySQL einen zufälligen Datensatz aus jeder Kategorie aus?

DDD
Freigeben: 2024-12-20 10:52:09
Original
819 Leute haben es durchsucht

How to Select One Random Record from Each Category in MySQL?

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();
Nach dem Login kopieren

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;
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage