Hallo,

ich möchte in einer Tabelle die Zahlen einer Spalte nach Grösse sortieren.
Das Problem ist, dass das die Zahlen aus bestimmten Gründen Kommazahlen sind, also z.B. 1,3 45,3 etc.

Kann mir jemand sagen wie das möglich ist?
Ich habe leider nicht so viel Erfahrung in mysql.....

Grüsse

Kathrina

Recommended Answers

All 7 Replies

Wenn Sie nur numerische Daten in der Spalte speichern, bilden Sie dann die Spalte Daten-Art (INT, BIGINT, DOUBLE).

Wenn Sie dies tun, sortieren die Daten numerisch. Nur gesetzt in Ihre Formatierung (Kommas, usw..) nach Ihnen ziehen Sie die Daten die Datenbank heraus. Speichern Sie die Zahlen nicht in der Datenbank mit Formatierung.

Hilft dieses Ihnen?

Ich habe nicht ganz verstanden was sie meinen.

Zur Zeit habe ich die Zahlen (z.B. 12,3 3,4 44,2) der Spalte mit dem Komma (nicht Punkt) in der Datenbank mit dem Typ: varchar abgespeichert.
Wenn ich nun mit "ORDER BY nummer ASC" sortiere, sortiert er nur nach der ersten Zahl.....

Ich spreche nicht Deutsches - ich benutze Babel Fische, um zu übersetzen, also hoffe ich, daß dieses für Sie arbeitet!
Wenn Sie 1234 als 1.234 anzeigen -- das Formatieren der Zahl angerufen wird. Speichern Sie "1.234" nicht in der Datenbank. Speichern Sie 1234 in der Datenbank. Tun Sie dann Ihre Formatierung, nach ausgezogen von der Datenbank, um anzuzeigen. Ändern Sie die Spalte von VARCHAR zu DOUBLE. Wenn Sie dies tun, sortiert es zahlreich Auftrag.
dieses Marke Richtung zu Ihnen?

aber leider sind meine Zahlen nicht mit Punkt, also 1.23 34.22 33.2 etc.
sondern mit Komma, also 1,23 34,22 33,2

Ich werde durch Ihre Daten verwirrt. Sie müssen etwas ganz speziellen Grund haben, Zahlen zu haben, die mit Kommas in ihnen gespeichert werden. Mit den Kommas sind die Werte nicht numerisch -- sie sind Zeichenketten. Wenn Sie den Wert "1.23" wünschen, können Sie ihn als 1.23 speichern? Dann, wenn Sie diese Daten vorwählen, wandeln Sie sie bis "1.23" um? Eine andere Lösung soll eine andere Spalte herstellen. In dieser Spalte setzen Sie die Werte von der ersten Spalte, aber ohne irgendwelche Kommas oder Dezimalkommata ein. Benutzen Sie diese neue Spalte für das Sortieren, aber benutzen Sie die erste Spalte für den tatsächlichen Wert.

Danke für ihre Hilfe, habe Lösung gefunden:

ORDER BY (0 + REPLACE(s.semesterapparatnummer, ',' , '.'))

das funktioniert!!!

Danke!

Aha! MySql REPLACE() Funktion. Ich sollte gewußt haben! Gute Arbeit.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.