Page 1 of 1
ORDER BY funktioniert so nicht?
Posted: 2004-02-24 17:02
by debian inside
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
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-24 17:15
by oxygen
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?
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-24 17:21
by debian inside
rating int(10)
votes int(10)
für comp kommt ne zahl zwischen 0.00 und 10.00 heraus, also mit kommastellen
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-24 18:13
by debian inside
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
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-24 18:21
by 007killer
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.
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-24 18:26
by debian inside
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
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-24 19:10
by 007killer
Naja dann frag doch da ?! Die kennen sich damit aus auch mit PHP und MySQL !?
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-24 19:22
by debian inside
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

Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-25 10:55
by ego
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
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-25 14:29
by oxygen
WHERE 1 <- phpMyAdmin stuff... kann man einfach weglassen.
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-25 14:47
by deanwickert
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.
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-25 17:37
by debian inside
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
Re: ORDER BY funktioniert so nicht?
Posted: 2004-02-25 18:08
by kase
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'