Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

3-stellige Versionsnummern in Datenbank sortieren

Empfohlene Antworten

Veröffentlicht

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?

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.

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

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.

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.

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

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:

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...

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

Archiv

Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.