Zum Inhalt springen

3-stellige Versionsnummern in Datenbank sortieren


Noxy

Empfohlene Beiträge

Hallo,

Ich hab folgendes Problem:

Ich will 3-stellige Versionsnummern in einer Datenbank speichern, also z.B.

4.05.3

4.05.19

4.10.3

9.10.19

9.10.34

9.12.145

Die erste Stelle kann 2 Zeichen lang sein, die zweite Stelle 2 Zeichen, die dritte Stelle 3 Zeichen. Also

xx.yy.zzz

Ich hab das ganze Momentan als String gespeichert. Wenn ich jetzt das sortieren anfange passiert folgendes:

4.10.7

4.10.7

4.10.6

4.10.25

4.10.22

Die .22 und .25 müsste ja eigentlich ganz oben stehen, da es aber ein String ist, zählt zuerst die 2.

Hat jemand eine Idee, AUSSER jede Stelle in einem einzelnen Feld zu speichern?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Entschuldige bitte wenn ich mal nachfrage, aber was spricht denn dagegen?

Ich halte die einzelne Speicherung fuer die beste Loesung.

Goos

Das ich die eierlegende Wollmilchsau Lösung haben wollte :)

Die einzelne Speicherung würde ich verwenden, wenn keiner einen BESSEREN Vorschlag hätte.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Entschuldige bitte wenn ich mal nachfrage, aber was spricht denn dagegen?

Ich halte die einzelne Speicherung fuer die beste Loesung.

Goos

Da muss ich zustimmen. Zerbrich dir nicht den Kopf und mach 3 Spalten draus.

Ist wirklich besser. Und das nicht wegen Faulheit, sondern wegen späterer Abfragegeschwindigkeit.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Da muss ich zustimmen. Zerbrich dir nicht den Kopf und mach 3 Spalten draus.

Ist wirklich besser. Und das nicht wegen Faulheit, sondern wegen späterer Abfragegeschwindigkeit.

Ok, dann mach ich es so und schreib ein Script, was mir das Zeug konvertiert. Thx

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab jetzt 3 Felder aus dem Einen gemacht. Problem:

Vorher hab ich gesucht:

"WHERE Version>='$version"

Wenn ich jetzt versuche damit zu suchen:

"WHERE Version1>='$version1 AND Version2>='$version2 AND Version3>='$version3"

funktioniert das ja nicht. Denn wenn ich nach einer Version 4.10 suche, findet er die Version 5.05 nicht, weil 05 kleiner als 10 ist. Wie muss denn die Suchabfrage in dem Fall lauten? Bin momentan etwas verwirrt :confused:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hi,

nehmen wir mal die Tabelle mit drei Feldern V1, V2 V3.

&versionX ist in diesem Fall eine Variable


SELECT V1, V2, V3 FROM TABELLE GROUP BY V1, V2, V3

 WHERE V1>= &version1

 AND

 V2 NOT IN 

  (SELECT V2 FROM TABELLE WHERE V1= &version1 AND V2<&version2)

 AND

 V3 NOT IN

 (SELECT V3 FROM TABELLE 

  WHERE V1= &version1 

  AND V2 = &version2 

  AND V3< &version3 )

;


Hoffe, ich habe dein Problem damit getroffen... ?? Und ich hoffe, das der Code stimmt *ggg* Hab nichts ausprobiert... Aber ohne Subselect ist's glaub ich schwer...

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ich hab jetzt 3 Felder aus dem Einen gemacht. Problem:

Vorher hab ich gesucht:

"WHERE Version>='$version"

Wenn ich jetzt versuche damit zu suchen:

"WHERE Version1>='$version1 AND Version2>='$version2 AND Version3>='$version3"

funktioniert das ja nicht. Denn wenn ich nach einer Version 4.10 suche, findet er die Version 5.05 nicht, weil 05 kleiner als 10 ist. Wie muss denn die Suchabfrage in dem Fall lauten? Bin momentan etwas verwirrt :confused:

leg einen view über die tabelle, der die versionen für abfragen wieder in einem feld zusammenführt.

alternative wäre eine normierung der versionen, z.b. durch auffüllen mit 0:

4.10.7 -> 04.10.007

dann funktioniert auch die lösung mit string.

-j

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...