SQL - Random aus den letzten 10 Einträgen
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
abfrage
abfragen
code
dank
eintrag
element
glauben
limit
ordern
profi
rand
reihe
starten
statement
tabelle
tip
url
vorhaben
-
Hallo!
Ich möchte aus den letzten 10 Einträgen (nach id) einen Random ausgegeben haben und weiß leider nicht wie ich das in einem SQL Statement anstellen soll.
Natürlich könnte ich zuerst die höchste id herausfinden und dann eine neue Abfrage für alle Reihen mit id größer größteid-11 sortiert nach Random starten, aber ich denke es geht auch besser und schneller.
Vielleicht kann mir einer von euch SQL Profis weiterhelfen, da ich mit derartig komplexen SQL Abfragen noch nicht konfrontiert war.
Vielen Dank und liebe Grüße
Stefan -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
SELECT * FROM (SELECT * FROM Tabelle ORDER BY id DESC LIMIT 10) AS tmp ORDER BY RAND() LIMIT 1
-
fatfox schrieb:
Mach das doch mit PHP...
Hol dir die ID der letzten 10 elemente und leg sie auf ein IDArray, dann ermittle dir eine Zufallszahl zwischen MinIndex und MaxIndex des Arrays und hole den Eintrag mit der ID auf dem Arrayelement IDArray[Zufallszahl] aus der DB.
Hat man nicht gelernt so viel wie möglich in Mysql auszulagern? Wesentlich schneller...
fabo schrieb:
SELECT * FROM (SELECT * FROM Tabelle ORDER BY id DESC LIMIT 10) AS tmp ORDER BY RAND() LIMIT 1
Das man SQL verachachteln kann habe ich bisher nicht gewusst. Danke für den Tipp, jetzt funktioniert alles.
Grüße
Stefan -
Eine rein auf MySQL basierende Lösung ist nicht zwangsläufig schneller als in PHP. Jedoch glaube ch, dass zumindest dieses Vorhaben einfacher mit MySQL umzusetzen ist, als mit PHP.
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage