Moin!
suche alle Einträge die > 500 sind, aber != 501,502,505,1200,4000
Du meinst, ich sollte vorab erstmal alle belegten Werte einlesen, um sie alsdann in einer where-bedingung unterzubringen?
Vor allem solltest du die zunächst mal überlegen, wie das Verhalten auszusehen hat, wenn in deiner Tabelle auch Buchstaben vorkommen.
Frage 1: Wie stellst du fest, welche Zahlen schon existieren? Abfrage?
Frage 2: Was passiert, wenn in dieser Abfrage Buchstaben vorkommen?
Frage 3: Wie wird ggf. ausgeschlossen, dass Buchstaben drin vorkommen?
Frage 4: Wie werden ggf. vorkommende Buchstaben behandelt?
Mal so gesponnen: Wenn dein Bereich von 109 bis 120 gehen soll, und in der Tabelle 109, 110, 109A und 10A vorkommen - dann wäre die "nächste" Zahl welche?
Es gibt gute Begründungen für alle möglichen Werte. 111 würde gelten, wenn du dezimale Zahlen meinst und alle Buchstabenwerte ausschließt.
10B wäre korrekt, wenn du die Zahlenwerte z.B. hexadezimal betrachtest.
109B wäre korrekt, wenn die Ausstattung mit Suffixbuchstaben von A-Z hinter einer Zahl analog zu Hausnummern das Bezeichnungsschema in dieser Spalte ist.
Btw: du willst doch nicht etwa IDs recyclen?
Warum sollte ich? Da habe ich doch nach hinten hin nahezu unendlich viel Platz.
Aber irgendwas willst du tun, mit Zahlen in einer VARCHAR-Spalte, was widersinnig ist. Erkläre mal etwas mehr vom Gesamtzusammenhang, dann besteht die Chance, eine passendere Lösung zu finden als das, was du dir momentan schon ausgedacht hast.
- Sven Rautenberg