phpbar.de logo

Mailinglisten-Archive

Re: Zufallsqueries?
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Zufallsqueries?



kein Problem, wegen der falschen Antwort.

Schade. dass mit der zusätzliche Spalte löst das
Problem nicht ganz, weil ich das Zufallsprinzip
bei jedem Select Query brauche.

Ich könnte bei jedem Query die rand() spalte
wieder neu vergeben, erachte aber dies als
eine zu grossen Overhead, wobei Performance
nicht unbedingt das Problem sein wird. Es
kommen nicht mehr als ca.100 Datensätze hinein.

Vielen Dank trotzdem :-)

Ivo



Christian Mack wrote:

> Ivo Pescia wrote:
> >
> > hmmmm, als ich das Mail gelesen habe war ich begeister,
> > aber irgendwas ist faul.
> >
> > Also
> >
> > hier ein normaler select mit order by
> >
> >
> > mysql> select * from T_Answers ORDER BY Answertext;
> > +-----------+---------------------+-------------+
> > | ID_Answer | Answertext          | Answergroup |
> > +-----------+---------------------+-------------+
> > |         1 | HP Wolf (1974)      | Menschen    |
> > |         2 | I Pescia (1968)     | Menschen    |
> > |         4 | L. Mutti (1977)     | Menschen    |
> > |         5 | M. Ziege (1964)     | Menschen    |
> > |         3 | O Brupbacher (1995) | Menschen    |
> > +-----------+---------------------+-------------+
> >
> >
> >
> > hier die Query mit Deinem Vorschlag
> >
> > mysql> SELECT *, rand() As randomizer FROM T_Answers ORDER BY randomizer;
> > +-----------+---------------------+-------------+------------+
> > | ID_Answer | Answertext          | Answergroup | randomizer |
> > +-----------+---------------------+-------------+------------+
> > |         1 | HP Wolf (1974)      | Menschen    |     0.2498 |
> > |         2 | I Pescia (1968)     | Menschen    |     0.9803 |
> > |         3 | O Brupbacher (1995) | Menschen    |     0.1520 |
> > |         4 | L. Mutti (1977)     | Menschen    |     0.8192 |
> > |         5 | M. Ziege (1964)     | Menschen    |     0.6400 |
> > +-----------+---------------------+-------------+------------+
> >
> > hmmm wird nicht sortiert nach randomizer.... wieso??
> >
> > ich habe mir gedacht dass er vielleicht nur Integer vergleicht also
> > habe ich folgendes probiert
> >
> > mysql> SELECT *, rand()*1000 As randomizer FROM T_Answers ORDER BY randomizer;
> > +-----------+---------------------+-------------+------------+
> > | ID_Answer | Answertext          | Answergroup | randomizer |
> > +-----------+---------------------+-------------+------------+
> > |         1 | HP Wolf (1974)      | Menschen    |   742.1964 |
> > |         2 | I Pescia (1968)     | Menschen    |   791.0832 |
> > |         3 | O Brupbacher (1995) | Menschen    |   728.8270 |
> > |         4 | L. Mutti (1977)     | Menschen    |   270.8853 |
> > |         5 | M. Ziege (1964)     | Menschen    |   167.9457 |
> > +-----------+---------------------+-------------+------------+
> >
> >
> > Klappt aber auch nicht.
> >
> >
> > wieso, wieso, wieso ......... hirn
> >
> > Ivo
> < cut >
>
> Hallo Ivo
>
> Hab gerade die Antwort gefunden (aus dem mysql manual):
> You can't use a column with RAND() values in an ORDER BY clause, because ORDER BY would evaluate the column multiple times.
>
> Ich dachte, dieses Problem waere bereits behoben :(
>
> Deshalb musst Du eine zusaetzliche FLOAT Spalte spendieren.
> Diese fuellst Du dann mit RAND().
> Danach kannst Du nach dieser Spalte sortieren.
>
> Entschuldige die falsche Antwort.
>
> Tschau
> Christian


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive