Kurz und Knapp: MySQL, ORDER BY, Negative Zahlen.
In dieser brandneuen Kategorie werde ich, wenn sich gerad die Gelegenheit bietet, kurze Codeschnipsel veröffentlichen, die vielleicht dem ein oder anderen, der ein ähnliches Problem hat wie ich, weiterhelfen.
Auf dieses Problem stieß ich, als ich an einer kleinen VoteUp/VoteDown-Funktion arbeitete, die hier demnächst auch in den Blog kommt. Die Votes wollte ich dabei getrennt in der Datenbank speichern. votesUp INT(11) UNSIGNED, votesDown INT(11) UNSIGNED. Ich entschied mich für UNSIGNED-Felder, weil es ja beides positive Zahlen werden sollen.
Die Query zum Auslesen sah nun ungefähr so aus: SELECT ... ORDER BY (-votesDown + votesUp) DESC. Das Ergebnis stellte mich leider nicht zufrieden. 15, 9, -19, -2 -1. Mit etwas Googeln war die Lösung dann schnell gefunden: Die beiden Felder dürfen nicht unsigned sein, sonst haut der das bei der Rechnung wohl irgendwie durcheinander.
Vielleicht hiflts ja jemandem!
