ORDER BY funktioniert so nicht?

MySQL, PostgreSQL, SQLite
debian inside
Posts: 65
Joined: 2003-01-30 22:46

ORDER BY funktioniert so nicht?

Post by debian inside » 2004-02-24 17:02

Code: Select all

SELECT  * ,  IF ( votes > 0, ( rating / votes ),  '0' ) AS comp FROM  `bb1_userpics`  WHERE 1 ORDER  BY comp DESC 
kann mir jemand sagen wieso das so nicht funktioniert?
die reihenfolge wird scheinbar zufällig ausgegeben


danke,
Thomas

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: ORDER BY funktioniert so nicht?

Post by oxygen » 2004-02-24 17:15

Also ich habe das gerade mal mit einer ähnlichen tabelle getestet und es funktioniert. Wie sieht deine Tabelle genau aus? Haben die Spalten möglicherweise nicht den richtigen Datentyp?

debian inside
Posts: 65
Joined: 2003-01-30 22:46

Re: ORDER BY funktioniert so nicht?

Post by debian inside » 2004-02-24 17:21

rating int(10)
votes int(10)

für comp kommt ne zahl zwischen 0.00 und 10.00 heraus, also mit kommastellen

debian inside
Posts: 65
Joined: 2003-01-30 22:46

Re: ORDER BY funktioniert so nicht?

Post by debian inside » 2004-02-24 18:13

ach jetzt hab ich den grund erkannt

es wird wie ein text geordnet...nach den anfangszeichen

mal kucken wie man das ändern kann
falls jemand die lösung kennt bitte helfen

007killer
Posts: 11
Joined: 2004-02-13 04:52

Re: ORDER BY funktioniert so nicht?

Post by 007killer » 2004-02-24 18:21

Die DB bb1_userpics is vom woltlab burning forum (wbboard). Ich würde sagen das du deine Fragen bei http://www.woltlab.de oder bei http://www.mywbb.info stellst, weil da bekommst du schneller eine Antwort weil es dort fast nur um das Board geht.

debian inside
Posts: 65
Joined: 2003-01-30 22:46

Re: ORDER BY funktioniert so nicht?

Post by debian inside » 2004-02-24 18:26

die tabelle bb1_userpics ist von mir und zwar zu 100%
das bb1_ steht da nur weil ich es für ein wbb2 schreibe und somit sollte es hier genau richtig sein

007killer
Posts: 11
Joined: 2004-02-13 04:52

Re: ORDER BY funktioniert so nicht?

Post by 007killer » 2004-02-24 19:10

Naja dann frag doch da ?! Die kennen sich damit aus auch mit PHP und MySQL !?

debian inside
Posts: 65
Joined: 2003-01-30 22:46

Re: ORDER BY funktioniert so nicht?

Post by debian inside » 2004-02-24 19:22

007killer wrote:Naja dann frag doch da ?! Die kennen sich damit aus auch mit PHP und MySQL !?
danke aber ich hatte den eindruck das sich hier auch ein paar auskennen :wink:

ego
Posts: 87
Joined: 2003-07-21 10:18

Re: ORDER BY funktioniert so nicht?

Post by ego » 2004-02-25 10:55

Kurze Frage am Rande. Wie begrenzt du die Ausgabe im Query?
Ich lese hier nur "WHERE 1"...du solltest dort noch den Feldnamen angeben, also "WHERE feldname=1" dann wäre der Query auch syntaktisch richtig.
debian inside wrote:

Code: Select all

SELECT  * ,  IF ( votes > 0, ( rating / votes ),  '0' ) AS comp FROM  `bb1_userpics`  WHERE 1 ORDER  BY comp DESC 
kann mir jemand sagen wieso das so nicht funktioniert?
die reihenfolge wird scheinbar zufällig ausgegeben


danke,
Thomas

oxygen
Posts: 2138
Joined: 2002-12-15 00:10
Location: Bergheim

Re: ORDER BY funktioniert so nicht?

Post by oxygen » 2004-02-25 14:29

WHERE 1 <- phpMyAdmin stuff... kann man einfach weglassen.

deanwickert
Posts: 77
Joined: 2003-05-13 23:20
Location: Lahnstein

Re: ORDER BY funktioniert so nicht?

Post by deanwickert » 2004-02-25 14:47

debian inside wrote:

Code: Select all

SELECT  * ,  IF ( votes > 0, ( rating / votes ),  '0' ) AS comp FROM  `bb1_userpics`  WHERE 1 ORDER  BY comp DESC 
Also ich komme da mit dem IF nicht so ganz klar.
Das MySQL Manual schweigt sich auch darüber aus.
Aber ich gehe mal davon aus, dass IF eine Funktion ist wie COUNT o.ä.
Dann muss es nämlich "IF(" heißen und nicht "IF (", also das Leerzeichen zwischen IF und der Klammer müsste dann weg.

debian inside
Posts: 65
Joined: 2003-01-30 22:46

Re: ORDER BY funktioniert so nicht?

Post by debian inside » 2004-02-25 17:37

das WHERE 1 ist vom phpmyadmin richtig....ist aber in diesem fall auch egal

das leerzeichen zwischen dem if und der klammer ist auch nicht der grund


es wird einfach comp als text gereiht....also zbsp:

comp:
8.00
7.67
6.20
4.67
4.50
10.00
0


aber mitlerweile hab ich den grund

'0' dadurch wird comp als string interpretiert -> nur 0

danke,
Thomas

kase
Posts: 1031
Joined: 2002-10-14 22:56

Re: ORDER BY funktioniert so nicht?

Post by kase » 2004-02-25 18:08

Ein Fehler, der zuuuuu gerne und immer immer wieder gemacht wird, bitte Leute, lasst bei Integer Werten die Anführungszeichen weg ;)

SELECT * FROM `table` WHERE id > 500

und NICHT

SELECT * FROM `table` WHERE id > '500'