8-Zeichen lange Zahl mit führender Null = Varchar?
Mortimer
- datenbank
Hi
Ich habe Artikelnummern die teilweise mit führenden Nullen beginnen.
Wenn ich sie als Integer in my SQL Datenbank speicher verlieren sie die führenden 0 vor einem positivem wert (1-9).
aus 01004711 wird dann 01004711... ärgerlich.. aber verständlich.
Muss sie nun als Varchar in meine DB speichern oder gibt es eine Int-Status der die führenden Nullen mitspeichert?
ciao
Hi,
Ich habe Artikelnummern die teilweise mit führenden Nullen beginnen.
Wenn ich sie als Integer in my SQL Datenbank speicher verlieren sie die führenden 0 vor einem positivem wert (1-9).aus 01004711 wird dann 01004711... ärgerlich.. aber verständlich.
Na, dann sei doch froh, wenn sich nichts ändert! :-)
Muss sie nun als Varchar in meine DB speichern oder gibt es eine Int-Status der die führenden Nullen mitspeichert?
Kenne mich _damit_ zwar jetzt nicht aus, aber hast du keine Möglichkeit, sie als Strings zu speichern?
Gruß
Arx, der jetzt schlafen geht, weil er morgen eine Mathematik-Klausur schreibt ;-)
Hello, come stai?
Ich habe Artikelnummern die teilweise mit führenden Nullen beginnen.
Wenn ich sie als Integer in my SQL Datenbank speicher verlieren sie die führenden 0 vor einem positivem wert (1-9).
Wenn Du die Artikel-Keys nun als Char(8) anspeicherst, dann kannst Du ja gar nicht mehr damit rechnen. Nun stell Dir doch mal vor, da wollte einer die Spaltensumme bilden ;-)
Alles klar?
Liebe Grüße aus http://www.braunschweig.de
Tom
Wenn Du die Artikel-Keys nun als Char(8) anspeicherst, dann kannst Du ja gar nicht mehr damit rechnen. Nun stell Dir doch mal vor, da wollte einer die Spaltensumme bilden ;-)
Ehrlich gesagt: Ich wusste noch nie wozu die Einweisung dafür ist....
Ich code nur für mich kleinere sachen die mir das arbeiten erleichtern... meisst speicher ich immer als varchar weil ich nicht verstehe wieso eine zahl nicht auch ein string sein darf...
das hat man davon wenn man quereinsteiger ist und sich nie mit der materie beschäftigt hat... =/
Aber hats du nun eine Lösung?
Gibt es eine INT-Form die die nullen beibehält?
ciao
Hello Mortimer,
Aber hats du nun eine Lösung?
Gibt es eine INT-Form die die nullen beibehält?
Du kannst die Darstellung auch noch in der Ausgabeeinheit ändern. In PHP z.B.
echo subtsr('00000000'.$nummer,-8);
Es gibt aber auch in MySQL eine Möglichkeit:
select lpad(nr,8,'0') as nr from <tabelle> where <bedingung>;
Liebe Grüße aus http://www.braunschweig.de
Tom
Gibt es ik Wikipedia was zum Thema...
Ich denke... es ist Zeit sich doch mal PHP-Theorien zu befassen... *lacht*
... Ich kenne nichtmal den Unterschied wieso man manchmal FOr und manchmal WHILE benutzt... ... ich denke ich bin, wie ihr manchmal hier sagt, ein Hobbycoder ...
Aber danke..
grüsse aus dem (DSL-losen) Swisttal
ciao
Hello,
Aber danke..
Bitte, immer wieder gerne ;-)
grüsse aus dem (DSL-losen) Swisttal
Au. noch mit 9,6 kBoud oder doch schon mit 54?
Liebe Grüße aus http://www.braunschweig.de
Tom
Hi,
echo subtsr('00000000'.$nummer,-8);
printf('%08d', $nummer);
cu,
Andreas
Hello Andreas,
echo subtsr('00000000'.$nummer,-8);
printf('%08d', $nummer);
Ich musste an dich (und diese Lösung) denken, als ich meinen Beitrag schrieb ;-) Irgendwie verbinde ich bestimmte Lösungen immer mit den Leuten, die sie hier propagieren...
Liebe Grüße aus http://www.braunschweig.de
Tom
Hallo!
Gibt es eine INT-Form die die nullen beibehält?
Nein, gibt es nicht, vorlaufende Nullen bei numerischen Daten keinen Sinn, wenn Du am Taschenrechner 4+2 ausrechnen willst und eingibst "000004" verschwinden daher die Nullen nach Drücken auf die Plus-Taste.
Du könntest in der Artikeltabelle ein Feld mitführen indem Du die Maske eingibst, also zB. '00000000' um sie für die Formatierung zu verwenden.
Zum Thema ist auch der Unterschied zwischen char und varchar interessant: http://dev.mysql.com/doc/mysql/de/CHAR.html.
Beste Grüße
Viennamade
Hallo!
Du könntest in der Artikeltabelle ein Feld mitführen indem Du die Maske eingibst, also zB. '00000000' um sie für die Formatierung zu verwenden.
Meine Lösung macht natürlich nur dann Sinn, wenn die Artikelnummern unterschiedlich maskiert werden, wenn nicht, dann bitte das Posting von Tom berücksichtigen (die Syntax dort ist mir auch neu - Danke Tom).
Beste Grüße
Viennamade
hi
Muss sie nun als Varchar in meine DB speichern oder gibt es eine Int-Status der die führenden Nullen mitspeichert?
Aus welchem Grund willst du denn deine Artikelnummer als Integer anlegen? Nummern als Integer zu speichern macht imho nur Sinn wenn du damit rechnen willst.
Ich denke das Tom dir das auch sagen wollte als er dir das Spaltensummenbeispiel mit folgendem ";-)"-Simley brachte.
Eine Artikelnummer ist genauso wie eine Postleitzahl keine Zahl im eigentlichen Sinne, sondern eine Nummernfolge mit der soweit mir bewußt in keinster Form gerechnet werden soll/kann/darf/muß.
Und zum ASC oder DESC sortieren reicht Varchar auch.
Mach dir also keinen Kopf und nimm Varchar, das ist schon die richtige Form für deine Artikelnummern.
so long
Ole
(8-)>
Hi,
Ich habe Artikelnummern die teilweise mit führenden Nullen beginnen.
Wenn ich sie als Integer in my SQL Datenbank speicher verlieren sie die führenden 0 vor einem positivem wert (1-9).
MySQL kennt das Attribut ZEROFILL für integer-Spalten.
cu,
Andreas