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?



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