Ankündigung

Einklappen
Keine Ankündigung bisher.

Daten nach Zahlen sortieren

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • LordAvalon
    hat ein Thema erstellt Daten nach Zahlen sortieren.

    Daten nach Zahlen sortieren

    Hallo,

    ich habe in einer MySQL Tabelle viele Werte, denen Zahlen von 0 bis 10 (SMALLINT) zugeordnet sind.

    Nun möchte ich die Daten geordnet nach den Zahlenwerten ausgeben lassen.

    Code:
    	$query = "SELECT * FROM tabelle ORDER BY zahl DESC LIMIT 0, 20";
    Problem ist, dass auch Kommazahlen vorkommen. Diese werden dann leider nicht beachtet und ganz unten ausgegeben, dabei soll 9,5 direkt nach 10 kommen und nciht irgendwann später ...

    Wie kann ich es schaffen, dass die Reihenfolge richtig ist?

  • Gast-Avatar
    Ein Gast antwortete
    Dann eben:

    Code:
    ... ORDER BY (REPLACE(zahl, ',', '.') + 0) ...
    Da du aber nicht nur sortieren, sondern den Wert verarbeiten willst, musst du den entsprechenden Spaltentyp verwenden, wie der Vorredner schon sagte.

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    DOUBLE aber nicht "," verwenden sondern "."

    NICHT 3,5 sondern 3.5

    Einen Kommentar schreiben:


  • LordAvalon
    antwortet
    Oh ...

    was sollte ich denn statt SMALLINT verwenden , damit ich Daten Zahlen zuweisen und dann danach sortieren kann?

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    wenn ich bei mir smalint mache, kann ich keine "," (Koma) Zahlen eintragen, werden automatisch zu ganzzahlen gerundet..

    Einen Kommentar schreiben:


  • LordAvalon
    antwortet
    genau!

    Ausgegeben wird, was du geschrieben hast.

    Ich möchte aber

    Code:
    1
    1,5
    2
    2,5
    3
    3,5
    usw.
    Wobei die Kommazahlen ganz ausgelassen werden. Sie werden nicht als normalen Zahlen dargestellt o.ä, sondern garnicht mit ausgelesen,

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    das heist du hast als Ausgabe jetzt einfach:
    Code:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ? wobei die Komazahlen nicht angezeigt werden?

    Einen Kommentar schreiben:


  • LordAvalon
    antwortet
    Naja, ich habe hier - wie gesagt - Werte zwischen 0 und 10. Manche davon sind auch Kommazahlen.

    Code:
    	$query = "SELECT * FROM tabelle WHERE zahl < 11  ORDER BY zahl + 0 DESC LIMIT 0, 20";
    Nun wird alles schön ausgegeben, kein Fehler o.ä. Nur werden die Kommazahlen nicht berücksichtigt und außen vor gelassen.

    Einen Kommentar schreiben:


  • dsmcg
    antwortet
    zeig mal was du jetzt für ne Ausgabe bekommst

    Einen Kommentar schreiben:


  • LordAvalon
    antwortet
    Hallo,

    danke für den Tipp.
    Aber geholfen hat das leider nicht.

    Einen Kommentar schreiben:


  • Gast-Avatar
    Ein Gast antwortete
    Du musst erstmal dafür sorgen, dass der Wert als Zahl und nicht als Zeichenkette verglichen wird.

    ... ORDER BY zahl + 0 ...

    Einen Kommentar schreiben:

Lädt...
X