MySQL - ORDER BY ...
dR.LoL
- datenbank
Morgen,
Ich habe in der meiner MySQL ein Abfrage Problem, und zwar will ich Software selectieren nach Name, Patch, Version.
Doch es wird zwar sortiert aber...
zb:
5.0.1.4
5.0.1.44
5.0.1.5
Dabei wäre die logische Sortierung von Versionen doch so:
5.0.1.4
5.0.1.5
5.0.1.44
Kann man das irgendwie ändern?
Man kann ja nur wählen zwischen ASC und DESC oder?
Danke, Gruss und noch n schöner Tach
dR.LoL
Tag dR.LoL.
Ich habe in der meiner MySQL ein Abfrage Problem, und zwar will ich Software selectieren nach Name, Patch, Version. Doch es wird zwar sortiert aber...
Es ist möglich, ORDER BY mit einer geeigneten Stringfunktion zu kombinieren, also bspw.
SELECT spalte FROM tabelle ORDER BY SUBSTRING(spalte, 5) DESC;
(davon ausgehend, dass die Spalte mit der Versionsnummer vom Typ TEXT ist)
Siechfred
Danke für die gute Antwort!
Allerdings krieg ich das nicht ganz ohne Fehler hin.
Weil, es gibt Software die haben Versionen von X.X.X bis hin zu X.X.X.X.X.X.X und jetzt müsste ich in dieser SQL Abfrage überprüfen, dass bei jedem X die Zahl wichtig ist, also eben wieder diese Reihenfolge 4,5,44 anstatt 4,44,5...
Kannst mir weitere Inputs geben?
Danke!
Tag dR.LoL.
Allerdings krieg ich das nicht ganz ohne Fehler hin.
Weil, es gibt Software die haben Versionen von X.X.X bis hin zu X.X.X.X.X.X.X und jetzt müsste ich in dieser SQL Abfrage überprüfen, dass bei jedem X die Zahl wichtig ist, also eben wieder diese Reihenfolge 4,5,44 anstatt 4,44,5...
Sieh dir die von mir verlinkte Seite mit den Stringfunktionen noch mal an, da gibt es auch eine Funktion namens SUBSTRING_INDEX:
SELECT spalte FROM tabelle ORDER BY SUBSTRING_INDEX(spalte, '.', -1) DESC
Sollte das auch noch nicht zum gewünschten Ergebnis führen, schau dir die weiteren Stringfunktionen nochmal an. Zusätzlich kannst du im ORDER BY auch mehrere Sortierkriterien angeben.
Siechfred
Japp jetzt ist es klar!
Danke dier viel vielmals!
Schöner Tag noch!
hi,
Dabei wäre die logische Sortierung von Versionen doch so:
5.0.1.4
5.0.1.5
5.0.1.44
Wieso sollte das "logisch" sein?
gruß,
wahsaga
hi,
Dabei wäre die logische Sortierung von Versionen doch so:
5.0.1.4
5.0.1.5
5.0.1.44
Weil erst die Patchversion 5.0.1.4, dann *.5 und dann *.44 kommt!
Die 44 ist keine "Teilzahl" also nicht 4.4 oder so was sondern effektiv die Version 44.
Gruss
hi,
Weil erst die Patchversion 5.0.1.4, dann *.5 und dann *.44 kommt!
Die 44 ist keine "Teilzahl" also nicht 4.4 oder so was sondern effektiv die Version 44.
Stimmt, mein Fehler :-)
gruß,
wahsaga