Ich habe eine Datenbank mit einer Items
Tabelle, die etwa wie folgt aussieht:MYSQL Select One Zufalls Datensatz aus jeder Kategorie
id
name
category (int)
Es gibt mehrere hunderttausend Datensätze. Jeder item
kann in einer von 7 verschiedenen categories
, die zu einer categories
Tabelle entsprechen:
id
category
ich eine Abfrage möchten, die 1 Zufallsgenerator wählt aus jeder Kategorie. Was ist der beste Weg, um das zu erreichen? Ich weiß Order By rand()
und LIMIT 1
für ähnliche zufällige Abfragen zu verwenden, aber ich habe so etwas noch nie gemacht.
Obige Abfrage funktioniert nach ein paar Korrekturen: 'SELECT * FROM ( SELECT c.id als cid, c.category, i.id, i.Name FROM Kategorien c INNER JOIN Artikel i ON c.id = i.category ORDER BY RAND() ) AS ShuffeledItems GROUP BY ShuffeledItems.cid' – rzymek
Hm, diese überarbeitete Abfrage etwa 1500 Zeilen für mich zurückkehrt – djt
@ Salman: Ja, ich bin mir nicht sicher, was ich sagen soll. Ich versuche es auf meiner DB und es gibt etwa 1500 Zeilen, und nicht die 7. – djt