phpbar.de logo

Mailinglisten-Archive

SELECT ... ORDER BY rand() ...

SELECT ... ORDER BY rand() ...

Michael Koch mysql-de_(at)_lists.bttr.org
Tue, 30 Oct 2001 11:04:35 +0100


Am Montag, 29. Oktober 2001 12:56 schrieb Michael Koch:
> Am Montag, 29. Oktober 2001 12:32 schrieb Dassow_(at)_iwkoeln.de:
> > > Ich habe ein Tabelle mit mehreren tausend Einträgen. Davon möchte ich
> > > zufällig ein gewisse Anzahl sortiert mit PHP ausgeben. Leider
> > > sollen diese
> > > Einträge zufällig aus allen Datensätzen ausgewählt und alphanumerisch
> > > sortiert werden. Ich komme nun auf die folgenden beiden
> > > SQL-statements:
> > >
> > > SELECT name FROM TblNames ORDER BY name LIMIT 10;
> > >
> > > und
> > >
> > > SELECT name FROM TblNames ORDER BY rand() LIMIT 10;
> >
> > Hi Michael,
> >
> > so sollte es gehen. Funktionen dieser Art sind immer mit alias zu
> > verwenden. Funktionieren dann auch nur in order by oder group by clauses.
> >
> > select name, rand() as zufall from TblNames order by zufall limit 0,10
>
> Wie du schon selbst in einer NAchfolgemail geschrieben hast, funktioniert
> das nicht. Es ist eine Abwandlung meines zweiten Statements, welches auch
> super alleine funktioniert.
>
> Was hier wohl gebraucht wird ist eine Sortierung nach dem LIMIT. Gibt es
> sowas ? Oder muss ich das wirklich mit PHP sortieren lassen ? Im DBServer
> wäre mir lieber, da das performanter ist.

Da wohl niemand eine Lösung kennt, wie man das direkt in SQL lösst, habe ich 
mich dazu entschieden

SELECT name FROM TblNames ORDER BY rand() LIMIT 10;

zu verwenden, und das Ergebnis in PHP sortieren zu lassen. Nach meinen Tests 
ist das die eleganteste Lösung. Eine pure SQL-Lösung wäre mir liebergewesen.
Vielleicht geht es mit MySQL 4.x (wenn das mal stabil ist, dass man es 
produktiv einsetzen kann).

Gruss,
Michael
-- 
Bremische Hafenvertretung e.V.                      tel: +49 (421) 3090148
IT-Abteilung                                        fax: +49 (421) 3090150
World Trade Center Bremen                      mail: mkoch_(at)_bremen-ports.de
Birkenstrasse 15                           www: http://www.bremen-ports.de
D-28201 Bremen

---
!!NEU!!
Fragen und Antworten zu MySQL und dieser Liste unter
-->>  http://www.4t2.com/mysql 



php::bar PHP Wiki   -   Listenarchive