MYSQL - INT Feld mit PLZ in Varchar wandeln und fehlende 0 ergä.
Laserscanner
- datenbank
0 Cheatah0 Christoph Jeschke2 Ilja
Hallo,
ich habe mir eine Datenbank mit PLZ und Ort gebastellt nur einen Fehler habe ich gemacht, ich habe das PLZ Feld als INT eingetragen.
Nun sind viele Ostdeutsche Städte statt mit 01234 mit 1234 eingetragen. Wie kann ich nun ohne einen manuellen eingriff die Fehlende Null hinzufügen?
Ich habe die DB Bereits auf VARCAR umgestelellt. Hat hier jemand Erfahrung?
Hi,
Nun sind viele Ostdeutsche Städte statt mit 01234 mit 1234 eingetragen. Wie kann ich nun ohne einen manuellen eingriff die Fehlende Null hinzufügen?
wenn es ausschließlich deutsche Postleitzahlen sind, kannst Du per UPDATE-Statement eine '0' voran anfügen und vom Ergebnis nur die rechten fünf Zeichen nehmen.
Cheatah
HM,
Update if tabelleplz count<4 +0 ???
Ich stehe etwas auf dem Schlauch...
Hello,
Update if tabelleplz count<4 +0 ???
Ich stehe etwas auf dem Schlauch...
Dann steig doch runter :-)
http://dev.mysql.com/doc/refman/5.1/en/string-functions.html
concat() http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_concat
right() http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_right
Führe ein Update der Spalte durch.
spaltenname
= right(concat('00000', `spaltenname'),5);
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
Hello,
spaltenname
= right(concat('00000', spaltenname
),5);
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
echo $begrüßung;
spaltenname
= right(concat('00000', `spaltenname'),5);
Es gibt keine deutschen Postleitzahlen, die mehr als eine führende Null haben.
echo "$verabschiedung $name";
Hello,
spaltenname
= right(concat('00000',spaltenname
),5);Es gibt keine deutschen Postleitzahlen, die mehr als eine führende Null haben.
Das Ganze ist soch sowieso ein philosophisches Problem für Programmierer.
Mein Gedanke war, alle PLZ aufzufüllen auf fünf Stellen. Und das ist ja erstmal unabhängig davon, ob es die PLZ überhaupt gibt.
Und dann geht das "wenn dann"-Theater los.
Wenn nun jemand die PLZ für meine Bergstadt hier statt mit 37444 nur für die Region, also mit 3744 erfasst hat, was geschieht damit? Aus der halbnützlichen Regionalkennziffer wird dann eine unbrauchbare 03744. Ob es die gibt, weiß ich nicht?
Ob man diese Ergänzung ohne Liste der verfügbaren PLZ und Nutzung der Redundanz aus dem Ortsabgleich überhaupt mit gutem Gewissen durchführen darf, müsste also noch disjutiert werden. Vielleicht verschlimmbessert man seinen Datenbestand damit nur?
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
echo $begrüßung;
Wenn nun jemand die PLZ für meine Bergstadt hier statt mit 37444 nur für die Region, also mit 3744 erfasst hat, was geschieht damit? Aus der halbnützlichen Regionalkennziffer wird dann eine unbrauchbare 03744. Ob es die gibt, weiß ich nicht?
Ob man diese Ergänzung ohne Liste der verfügbaren PLZ und Nutzung der Redundanz aus dem Ortsabgleich überhaupt mit gutem Gewissen durchführen darf, müsste also noch disjutiert werden. Vielleicht verschlimmbessert man seinen Datenbestand damit nur?
Meines Erachtens bleibt das Problem gleich. Ob die Zahl nun falsch ist, weil eine Ziffer fehlt oder eine falsch ist ... man weiß in beiden Fällen nicht, welche das nun ist, wenn man keine Plausibilitätsprüfung durchführt.
echo "$verabschiedung $name";
Guten Tag,
ich habe mir eine Datenbank mit PLZ und Ort gebastellt nur einen Fehler habe
ich gemacht, ich habe das PLZ Feld als INT eingetragen.
Definiere, wenn du ausschließlich deutsche PLZ eintragen willst, die Spalte als UNSIGNED ZEROFILL MEDIUMINT(5). Dann kannst du auch fünfstellige PLZ mit führender Null eintragen und bleibst beim richtigen Datentyp.
Gruß
Christoph Jeschke
Hi,
Definiere, wenn du ausschließlich deutsche PLZ eintragen willst, die Spalte als UNSIGNED ZEROFILL MEDIUMINT(5). Dann kannst du auch fünfstellige PLZ mit führender Null eintragen und bleibst beim richtigen Datentyp.
INT als "richtigen" Datentyp für nicht-numerische Daten wie Postleitzahlen zu bezeichnen, halte ich für gewagt (bis schlicht falsch).
MfG ChrisB
Guten Tag,
INT als "richtigen" Datentyp für nicht-numerische Daten wie Postleitzahlen zu
bezeichnen, halte ich für gewagt (bis schlicht falsch).
Und welcher Datentyp sind deutsche Postleitzahlen deiner Meinung nach? Buchstaben kommen in ihnen nicht vor und sie sind, mit Ausnahme der Feldpoststellen, auch alle fünfstellig.
Gruß
Christoph
Hello,
Und welcher Datentyp sind deutsche Postleitzahlen deiner Meinung nach? Buchstaben kommen in ihnen nicht vor und sie sind, mit Ausnahme der Feldpoststellen, auch alle fünfstellig.
Das sind Strings.
Sie haben mathematisch keine Bedeutung.
Man will und kann damit nicht (sinnvoll) rechnen.
Die führende '0' ist ein valides Zeichen mit Wert für den Gesamtausdruck.
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg
yo,
Nun sind viele Ostdeutsche Städte statt mit 01234 mit 1234 eingetragen. Wie kann ich nun ohne einen manuellen eingriff die Fehlende Null hinzufügen?
sicherlich führen viele wege nach rom, der beste weg in diesem falle geht über die funktion LPAD(), die genau dafür gedacht ist:
UPDATE tabelle SET spalte_mit_plz = LPAD(spalte_mit_plz, '0', 5);
Ilja
echo $begrüßung;
UPDATE tabelle SET spalte_mit_plz = LPAD(spalte_mit_plz, '0', 5);
Du hast die Parameter falschrum notiert. Zuzweit kommt die Länge, dann dass Füllzeichen.
echo "$verabschiedung $name";
Hello,
UPDATE tabelle SET spalte_mit_plz = LPAD(spalte_mit_plz, '0', 5);
Du hast die Parameter falschrum notiert. Zuzweit kommt die Länge, dann dass Füllzeichen.
Dann hättest Du ja auch gleich den Link dazutun können :-P
http://dev.mysql.com/doc/refman/5.1/en/string-functions.html#function_lpad
Liebe Grüße aus dem schönen Oberharz
Tom vom Berg