Hallo zusammen,
es geht um die Sortierung einer Spalte in einer MySQL-Datenbank des Typs Text mit Inhalten, die wie folgt aussehen:
DN 15
DN 25
DN 40
DN 50
DN 100
DN 200
In dieser Reihenfolge sollte es eigentlich sortiert sein, leider sortiert er die Spalte aber bei angabe von ORDER BY nennweite ASC so:
DN 100
DN 15
DN 200
DN 25
DN 40
DN 50
Mir ist klar, warum er das macht, aber noch nicht ganz wie ich das verhindern/ändern kann.
Ich hatte mir schon überlegt "DN " vorne abzuschneiden und den Rest als Typ INT in die Datenbank zu speichern.
Leider sehen nicht alle Datensatze so aus, weshalb der Typ Text undbedingt bleiben muss.
Meine erste Idee war die Eingabe mit regulären Ausdrücken zu bearbeiten, damit ich z.B. aus "DN 15" --> "DN 015" mache, wodurch dann ja wieder richtig sortiert werden würde.
Dann müsste ich eben bei der Ausgabe die Null wieder wegnehmen.
Meine Frage ist jetzt eigentlich nur:
Ist das so die beste und richtige Methode?
Oder denke ich zu umständlich und es lässt sich viel einfacher lösen?
Wenn ja wie? (Brauche nur einen Denkanstoß)
Ich hoffe ich habe mich verständlich ausgedrückt.
Vielen Dank schonmal im Voraus.
Grüße
Ramona
es geht um die Sortierung einer Spalte in einer MySQL-Datenbank des Typs Text mit Inhalten, die wie folgt aussehen:
DN 15
DN 25
DN 40
DN 50
DN 100
DN 200
In dieser Reihenfolge sollte es eigentlich sortiert sein, leider sortiert er die Spalte aber bei angabe von ORDER BY nennweite ASC so:
DN 100
DN 15
DN 200
DN 25
DN 40
DN 50
Mir ist klar, warum er das macht, aber noch nicht ganz wie ich das verhindern/ändern kann.
Ich hatte mir schon überlegt "DN " vorne abzuschneiden und den Rest als Typ INT in die Datenbank zu speichern.
Leider sehen nicht alle Datensatze so aus, weshalb der Typ Text undbedingt bleiben muss.
Meine erste Idee war die Eingabe mit regulären Ausdrücken zu bearbeiten, damit ich z.B. aus "DN 15" --> "DN 015" mache, wodurch dann ja wieder richtig sortiert werden würde.
Dann müsste ich eben bei der Ausgabe die Null wieder wegnehmen.
Meine Frage ist jetzt eigentlich nur:
Ist das so die beste und richtige Methode?
Oder denke ich zu umständlich und es lässt sich viel einfacher lösen?
Wenn ja wie? (Brauche nur einen Denkanstoß)
Ich hoffe ich habe mich verständlich ausgedrückt.
Vielen Dank schonmal im Voraus.
Grüße
Ramona
Kommentar