Florian: Sortierprobleme mit MySQL

hallo,

ich wollte gerne mit folgendem string "select * from tabelle order by zellenname asc" dafür sorgen, daß aufwärts sortiert wird. das tut es auch, aber wie folgt:

1
10
100
1000
1001
.
.
.
2
20
200

wie kann ich dafür sorgen, daß er das wie gedacht 1,2,3,4...1000 ändert?

  1. yo,

    wie kann ich dafür sorgen, daß er das wie gedacht 1,2,3,4...1000 ändert?

    welchen typ hast du den für das feld gewählt, etwa einen string anstelle eines numerischen typs ?

    Ilja

  2. Sieht mir nach einem falschen Feld-Typ aus.

    1
    10
    100
    1000
    1001
    .
    .
    .
    2
    20
    200

    Bei Zeichenketten-Feldern (zB Varchar) werden die Ziffern als Buchstaben gesehen, und da wird eben so sortiert, wie in Deinem Beispiel.
    Wenn Du das Feld als Zahlen-Feld (zB INT) definierst, werden die Zahlen richtig erkannt und auch als Zahlen sortiert.

    lg, Jan

  3. Hi,

    es kann eigentlich nur daran liegen, dass der Spaltentyp kein Zahlen-, sondern ein Zeichenkettentyp ist (also varchar und nicht int, float oder sowas). Ändere den Spaltentyp mal auf int und die Sortierung wird funktionieren.

    BTW kann man die Sortierfolgen auch beliebig beeinflussen: http://aktuell.de.selfhtml.org/tippstricks/datenbanken/sqlsort/index.htm ;-)

    viele Grüße
      Achim Schrepfer

    --
    http://reskit.speedesign.de/ - PHP-Bibliothek zum automatischen Erzeugen von HTML-Tabellen, -Formularen und -Baummenüs anhand von MySQL-Tabellen
    Selfcode: sh:) fo:| ch:| rl:° br:> n4:{ ie:% mo:} va:| de:< zu:| fl:( ss:) ls:& js:|