MySQL: Werte mit führenden Nullern auslesen
Frage von Sledge | 21.05.2012 um 15:09
Ich möchte Werte aus einer Spalte in MySQL mit führenden Nullern auslesen. Gibt es dafür einen MySQL Befehl?
Am liebsten wäre mir, wenn die Werte direkt so aus MySQL kommen würden, damit ich nicht erst mit PHP oder anderen Nach-Formatierungen die Nullen hinzufügen muss.
Ähnliche Themen
MySQL: Integer Typen
Info | 0 Kommentare
MySQL: Timestamp Spalte nach Monat und Jahr gruppieren
Tipp | 0 Kommentare
MySQL: Zeilenumbrüche in MySQL
Tipp | 0 Kommentare
MySQL: Minimale Wortlänge bei der Volltextsuche ändern
Tipp | 1 Kommentar
MySQL: Werte aus zwei Spalten auslesen und in einer Variable ausgeben
Tipp | 0 Kommentare
MySQL/PHP: ID vom letzten INSERT auslesen
Info | 0 Kommentare
MySQL: CSV Export als auf dem Server gespeicherte Datei
Tutorial | 0 Kommentare
Wichtiger Hinweis
Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.
Jetzt mitmachen
Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.
Falls du Integer-Werte meinst, die natürlich nicht mit führenden Nullen aus der Datenbank kommen, speicher die Werte doch einfach als VARCHAR ab.
Dann kannst du so viele Nullen direkt abspeichern, wie du magst und hast das Problem erst gar nicht.
23.05.2012 um 19:26
Würde ich so nicht machen, die anderen Lösungen sind da um einiges besser. Wenn du Integer-Werte hast, solltest du sie auch als Integer abspeichern.
Erstens verbraucht ein VARCHAR Feld so unnötig viel Speicherplatz und zweitens ist die Bearbeitung (zum Beispiel Addition etc) mit einer Integer-Spalte viel einfacher als mit String-Datentypen.
28.05.2012 um 11:24
Ich bin auch für die LPAD-Lösung. Ansonsten könnte dir auch noch helfen, die Spalte als "UNSIGNED ZEROFILL" zu deklarieren. Dann sollte das auch automatisch mit den Nullen zu Beginn funktionieren.
Bei "UNSIGNED ZEROFILL" definierst du die Länge dann durch zum beispiel INT(5) für fünfstellig aufgefüllte Werte.
29.05.2012 um 23:09
Es gibt den schönen MySQL Befehl LPAD, was für Left Padding steht. Ich denke, das ist genau das, wonach du hier gesucht hast.
Hier mal ein kleines Beispiel dafür:
Diese MySQL Abfrage liest die Werte aus "spalte" aus der Tabelle "tabelle" aus und sorgt dafür, dass die zu einer Länge von 3 Zeichen fehlenden Zeichen mit einer Null aufgefüllt werden.
LPAD erwartet 3 Parameter:
So sollte es funktionieren.
27.05.2012 um 21:36
Das ist so aber nicht richtig. Es gibt zwei Befehle RPAD und LPAD. Das eine füllt rechts und das an links auf. Was hier gebraucht wird ist linksauffüllen, also LPAD.
Die Anweisung lautet auch anders, als oben geschrieben
SELECT LPAD(Spalte, Anzahl, Womit ) FROM tabelle;
Also:
SELECT LPAD(spalte, 3, '0') FROM tabelle;
26.11.2014 um 17:27
Vielen Dank. Völlig richtig.
Ich habe den Fehler in meiner Antwort korrigiert.
28.11.2014 um 17:55