Ich misch mich mal kurz ein.
VALUES
('313',
Das ist ein Zahl
'25.02.2009',
'Vietz',
'Hannover',
'D-Stator',
'Abus',
'S10559',
'D575945009',
Keine Zahlen.
'400',
'50',
'1,5',
'0,9',
'0.09',
'0.37',
'620',
'2800',
'155',
'150',
'24',
'70',
'67',
Das ist sind alles Zahlen
usw.
Aber das ist ja genau das was ich nicht verstehe. Gebe ich in meinem SCRIPT die Leistung mit "." ein macht er den gleichen Fehler als wenn ich ein "," eingebe. Und der Query is so gesehen genau der gleiche.
Wer macht den Fehler?
Du meinst die Sortierung der DB Ausgabe entspricht nicht deinem Wunsch. Da ändert auch ein Zeichen nichts, du musst einfach die entsprechenden Spalten, die Zahlen darstellen sollen, als Zahlen speichern. Damit bekommst du nicht nur die richtige Sortierung, es ist auch Platzsparender (unter dem Vorbehalt, dass Decimal evtl. intern auch als Zeichenkette abgespeichert wird) und schneller
D.h. alle Strings, auch die mit einem Komma, musst du als Zahlen eintragen. wenn du ungültige Eingaben erwartest, musst du dies in deinem Programm prüfen und darauf reagieren, aber nicht in dem du die Datenbank verhunzt, sondern entweder stillschweigend, in dem du Kommas in Punkte umwandelst oder mit einer Fehlermeldung.
» warum du für bestimmte spalten wie drehzahl immer noch VARCHAR datentypen verwendest, ist mir schleierhaft, aber eins nach dem anderen
Brauchen wir nicht weiter drüber diskutieren. Ich will die Datenbank so einfach wie möglich gestaltet haben, da es hier in der Firma immernoch "Nicht-so-schlaue" gibt, die da alles mögliche eingeben aber nicht das was da rein soll! z.B. statt nur einer Zahl (2800) die Wertbezeichnung mit dahinter (2800/min).
Und genau das ist dein Problem. Entweder das Feld ist eine Zahl, dann darfst du auch nur Zahlen zulassen oder es ist keine, dann kannst du die Spalte auch nicht so einfach nach Zahlen sortieren. wenn du die DB so einfach wie möglich gestalten willst, darfst du nur Werte zulassen, die die Spalte darstellen.
Struppi.