2012-04-04 15 views
0

In meiner MySQL Datenbank haben alle Einträge eine Bewertung (ein Integer). Jetzt möchte ich eine SQL-Abfrage haben, die 10 Elemente nach dem Zufallsprinzip liefert. Und wie Sie wahrscheinlich vermuten, sollte die Chance eines Elements, RatingOfThisElement/AllRatings sein. Wie kann ich das machen. (Ich weiß, wie man es in PHP macht, aber ich möchte wegen der Leistung eine SQL-Abfrage haben).SQL Random Query

Antwort

0

Google sollte Ihnen dabei helfen: http://akinas.com/pages/en/blog/mysql_random_row/

+0

, die nur zufällig ist. Aber ich möchte die Chance, RatingOfThisElement/AllRatings, nicht 1/NumElements wie in Ihrem Beispiel. – user1200226

+0

Der Punkt ist, Sie müssen wissen, wie Sie Zufälligkeit erzeugen. Sie müssen herausfinden, wie Sie Zufälligkeit auf Ihre Situation anwenden können. – briantyler

0

Sie ORDER BY RAND() verwenden LIMIT 10 wie hier MySQL: Alternatives to ORDER BY RAND() aber es gibt Probleme mit der ORDER BY RAND in MySQL, wenn in gewisser Weise verwendet. Es kann große Performance-Probleme Fall und Sie können besser dran, es in PHP zu tun - alternatives to ORDER BY RAND

+0

Das ist auch nur zufällig. Aber ich möchte die Chance, RatingOfThisElement/AllRatings, nicht 1/NumElements wie in Ihrem Beispiel. – user1200226

0

hier ist die Lösung

SELECT * FROM yourtablename ORDER BY RAND() LIMIT 0,10; 
+0

Wenn Sie sich den Link, den ich gepostet habe, ansehen, hat er eine schlechtere Leistung als eine PHP-Abfrage. – briantyler

+0

aber user1200226 hat PHP nicht markiert;) –