"Order by" nach Integer

barbour

barbour

Aktives Mitglied
Thread Starter
Dabei seit
20.11.2004
Beiträge
262
Reaktionspunkte
2
Moin,

ich steh' grad aufm Schlauch und die Suche brachte leider auch noch nichts:

Gibt es eine Möglichkeit, bei einer MySQL-Abfrage ("Select...") nach "integer" zu sortieren, sprich ich hab ein Feld in dem Teilweise einträge wie z.B. "10", "20" wie auch "20-40", und müsste die jetzt sortieren lassen.

Tipps ?

Vielen Dank soweit erstmal...
 
Vielleicht mal die ganz SQL-Abfrage posten? ;)
 
Wie soll das denn sortiert werden? 10, 20, 20-40, 30, 40? Oder sind die Bereiche exklusiv, so dass es nichts zwischen 20 und 40 anderswo geben kann?
"20-40" ist übrigens bestimmt kein Integer ;)

Gruß,
Ace
 
ich glaube die erste frage ist: wie willst DU die liste denn sortiert haben?
 
am liebsten nach Größe, also 10, 10-20, 40..
 
barbour schrieb:
am liebsten nach Größe, also 10, 10-20, 40..
10-20 ist aber wahrscheinlich ein String, so wie das dasteht, und kein Integer!
 
dann einfach "ORDER BY" und dein spaltenname.

denn 10-20 ist sortierungstechnisch kleiner als 40.

doof ist wenn du z.b. 1 2 3 4 5 6 7 8 9 10 11 12 hast.
dann sieht's so aus:
1 11 12 2 3 4 5 6 7 8 9
 
Vielen Dank erstmal für die Zuschriften, allerdings scheint es mit einem einfachen "Order By" nicht zu funktionieren.

Sprich, mein ergebnis sieht dann so aus : 1 10, 103, 20, 20-40 etc.

Das Feld muss leider ein Int sein, meine Idee war jetzt einfach, das als Int zum sortieren so zu behandeln.

Vielen Dank nochmals,

barbour
 
nochmal: wie bitte soll denn '20-40' in ein INT feld gehe? O_O

wenn dann ist dein feld ein String.

man kann natürlich 10-20 (ohne '') im insert benutzen, dann würde in der Tabelle als ergebnis -10 landen, klar oder?
also,
klärung!!!
 
ich lege dir den Wiki-Artikel zur Normalisierung ans Herz. Er funktioniert auch ein bischen als Einleitung richtung Datenmodellierung. http://de.wikipedia.org/wiki/Normalisierung_(Datenbank) (ein lesenswerter Artikel, laut Wiki)

lg

PS: Für Konkrete Hilfe wäre es gut wenn du alle Daten postest und am besten auch noch die DB-Struktur. Sag uns was du erreichen willst und wir können vielleicht weiterhelfen.

edit: btw. gibt es sortiertabellen die stringformatiere Integer sinnvoll sortieren können?
 
barbour schrieb:
Vielen Dank erstmal für die Zuschriften, allerdings scheint es mit einem einfachen "Order By" nicht zu funktionieren.

Sprich, mein ergebnis sieht dann so aus : 1 10, 103, 20, 20-40 etc.

Das Feld muss leider ein Int sein, meine Idee war jetzt einfach, das als Int zum sortieren so zu behandeln.

Vielen Dank nochmals,

barbour

Die Sortierung ist so richtig. Das ist kein Fehler.

Das liegt daran, dass das Feld kein INT ist.

Varchar/Char wird so typischerweise sortiert.

Ich glaube, wir sprechen hier von unterschiedlichen Sachen.
 
joedelord schrieb:
edit: btw. gibt es sortiertabellen die stringformatiere Integer sinnvoll sortieren können?

was sind stringformatiere Integer?
Das schließt sich doch gegenseitig aus. Entweder ist es Datentyp String oder Datentyp Integer.
 
So, vielen Dank Jungs, aber ich habs so rausbekommen:

Was ich eigentlich wollte: Ein Text-Feld wie ein Int-Feld sortieren lassen.

Wie es geht: Man muss MySQL anweisen, es so zu behandeln und zwar mit "...ORDER BY (Feld+0) ASC / DESC )"

Trotzdem vielen Dank und noch einen schönen Abend

barb
 
Danke, dass du die Lösung gepostet hast.
Ich wusste nicht, dass das geht.
 
barbour schrieb:
Was ich eigentlich wollte: Ein Text-Feld wie ein Int-Feld sortieren lassen.

Hättest Du die Frage doch gleich so gestellt ;)
 
Zurück
Oben Unten