Bei Ausgabe aus einer mysql Datenbank Zahl mit 0 ergänzen und 3 stellen abschneiden
Björn
- mysqli
Moin,,
ich habe ein Zahlenproblem, es geht hierbei um deutsche Gemeindeschlüssel Zahlen. Diese sind in meiner msql Datenbank als 6 und 7 stellige zahlen vorhanden.
Bei der Ausgabe soll, wenn die Zahl nur 6 stellig ist eine 0 vorgesetzt werden.
1234567 0123456
Anschliessend soll immer die letzten zwei Zahlen abgeschnitten werden.
12345 01234
So das ich die richtige Gemeinde Kennzahl erhalte.
Jetzt habe ich es schon mit SELECT SUBSTR probiert, aber das ist glaube ich nur von vorne. Ich bräuchte das von hinten her.
Auch weis ich nicht wie ich eine 0 zur Ausgabe dazubekomme.
Björn
Moin Björn,
ich habe ein Zahlenproblem, es geht hierbei um deutsche Gemeindeschlüssel Zahlen. Diese sind in meiner msql Datenbank als 6 und 7 stellige zahlen vorhanden.
Sollen das wirklich Zahlen oder nicht lieber CHAR(7)
sein?
Bei der Ausgabe soll, wenn die Zahl nur 6 stellig ist eine 0 vorgesetzt werden.
1234567
0123456Anschliessend soll immer die letzten zwei Zahlen abgeschnitten werden.
12345
01234So das ich die richtige Gemeinde Kennzahl erhalte.
Jetzt habe ich es schon mit SELECT SUBSTR probiert, aber das ist glaube ich nur von vorne. Ich bräuchte das von hinten her.
SUBSTR und SUBSTRING können alles, was du an dieser Stelle brauchst, sofern weder LEFT noch RIGHT tun, was du möchtest.
Auch weis ich nicht wie ich eine 0 zur Ausgabe dazubekomme.
Du möchtest also von links Zeichen hinzufügen, auf englisch left pad.
Viele Grüße
Robert
Hallo Björn,
eine Aufbereitung für die Anzeige ist normalerweise keine Sache für die Datenbank. Eine Datenbank liefert Daten, eine Anwendung kümmert sich um die Aufbereitung.
Du hast das Thema mit mysqli getaggt. Heißt das, dass Du die Datenbank mit PHP abfragst? In dem Fall solltest Du die Aufbereitung mit PHP durchführen und die DB damit nicht behelligen.
Aber wenn Du unbedingt willst...
Deine Gemeindekennziffer steckt also in einer INT Column? Kein Problem, MYSQL ist sehr konvertierfreudig.
Ich nenne die Spalte mit der Gemeindekennziffer mal GK.
LPAD funktioniert gleich gut mit INT oder VARCHAR-Spalten und kann auch mit '0' auffüllen. Danach hast Du einen garantiert 7 Stellen langen String.
Und darauf wendest Du dann SUBSTR oder SUBSTRING an (die sind synonym), um die ersten 5 Stellen herauszuholen.
Ohne die automatische Typkonvertierung von MYSQL müsstest Du die GK-Spalte zuerst nach CHAR konvertieren, das ginge mit CAST(GK AS CHAR(7))
Rolf