Heim >Datenbank >MySQL-Tutorial >Wie wähle ich einen zufälligen Datensatz aus jeder Kategorie in einer MySQL-Datenbank aus?
Datenbankauswahl über mehrere Kategorien hinweg randomisieren
Die hier vorgestellte Herausforderung besteht darin, einen einzelnen zufälligen Datensatz aus jeder Kategorie innerhalb einer Datenbank abzurufen. Die Items-Tabelle enthält diese Datensätze, die jeweils einer Kategorie zugeordnet sind, die durch eine entsprechende Kategorientabelle angegeben wird.
Um diese Aufgabe anzugehen, kann man die inhärente Zufälligkeit von MySQL mit der RAND()-Funktion und der LIMIT 1-Klausel nutzen. Das Einzigartige hier ist jedoch die Notwendigkeit, für jede einzelne Kategorie einen zufälligen Datensatz auszuwählen.
Die folgende Abfrage geht diese Herausforderung elegant an:
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
Die Struktur dieser Abfrage ermöglicht das Abrufen eines Datensatzes Zufälliger Datensatz aus jeder Kategorie:
Auch wenn dieser Ansatz möglicherweise nicht besonders schnell ist, löst er effektiv die Herausforderung der zufälligen Datensatzauswahl über mehrere hinweg Kategorien. Alternative Optimierungsvorschläge sind willkommen, um den Nutzen dieser Abfrage weiter zu steigern.
Das obige ist der detaillierte Inhalt vonWie wähle ich einen zufälligen Datensatz aus jeder Kategorie in einer MySQL-Datenbank aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!