Noxy Geschrieben 27. Januar 2005 Teilen Geschrieben 27. Januar 2005 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? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
kills Geschrieben 27. Januar 2005 Teilen Geschrieben 27. Januar 2005 du könntest das feld beim select mit Substring trennen und die ergebnisse nach INT Casten. Dann einfach nach den 3 Spalten sortieren und fertig. Am besten legst du dir dafür eine View ö.ä. an. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Goos Geschrieben 27. Januar 2005 Teilen Geschrieben 27. Januar 2005 Hat jemand eine Idee, AUSSER jede Stelle in einem einzelnen Feld zu speichern? Entschuldige bitte wenn ich mal nachfrage, aber was spricht denn dagegen? Ich halte die einzelne Speicherung fuer die beste Loesung. Goos Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noxy Geschrieben 27. Januar 2005 Autor Teilen Geschrieben 27. Januar 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
The_red_one Geschrieben 27. Januar 2005 Teilen Geschrieben 27. Januar 2005 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noxy Geschrieben 27. Januar 2005 Autor Teilen Geschrieben 27. Januar 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Noxy Geschrieben 27. Januar 2005 Autor Teilen Geschrieben 27. Januar 2005 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: Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Biese Geschrieben 27. Januar 2005 Teilen Geschrieben 27. Januar 2005 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... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Jasper Geschrieben 27. Januar 2005 Teilen Geschrieben 27. Januar 2005 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 Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.