mace Geschrieben 16. März 2005 Geschrieben 16. März 2005 Hallo, habe eine Frage zu diesem Thema: und zwar sagt das mysql Referenzhandbuch ja: "Wenn CHAR-Werte gespeichert werden, werden sie am rechten Ende bis zur festgelegten Länge mit Leerzeichen aufgefüllt." Das heisst bei einem Wert von 'ab' in einem CHAR(4) Feld, wird daraus 'ab ' Dies ist Hauptunterscheidungsmerkmal zu VARCHAR Feldern... Leider macht mein mysql (4.0) das scheinbar nicht, er füllt die verbleibende Länge einfach nicht mit Leerzeichen aus. Jedenfalls sieht man diese nicht in der Tabelle, ist das normal? Gruss,
bionaut Geschrieben 17. März 2005 Geschrieben 17. März 2005 Guten Morgen, ... das scheinbar nicht, er füllt die verbleibende Länge einfach nicht mit Leerzeichen aus. Jedenfalls sieht man diese nicht in der Tabelle, ist das normal?... wenn man im Referenzhandbuch weiterliest: Wenn CHAR-Werte abgerufen werden, werden die Leerzeichen am Ende entfernt. http://dev.mysql.com/doc/mysql/de/char.html Gruessle bio*
mace Geschrieben 17. März 2005 Autor Geschrieben 17. März 2005 Ja das habe ich natürlich auch gelesen, also zählt das betrachten der Tabelle dann also auch schon zu abrufen?! Wie bewirke ich dann das die Leerzeichen nicht beim abrufen entfernt werden? Denn selbst wenn ich sie per Hand reinschreibe werden sie ja entfernt... Brauche unbedingt die Möglichkeit Werte rechts mit Leerzeichen auffüllen zu können, die dann auch so in der Tabelle stehen... Wie geht das ??
bionaut Geschrieben 17. März 2005 Geschrieben 17. März 2005 In der Tabelle stehen sie ja, werden aber beim Abruf abgeschnitten. Da Du aber weisst, wie gross das Datenfeld ist, kannst Du ja eine Funktion schreiben, die Dir die Anzahl der Chars ermittelt und dann die noetigen Leerzeichen hinzufuegt. Gruessle bio*
kills Geschrieben 17. März 2005 Geschrieben 17. März 2005 siehe manual string-functions: http://dev.mysql.com/doc/mysql/en/string-functions.html RPAD(str,len,padstr) Returns the string str, right-padded with the string padstr to a length of len characters. If str is longer than len, the return value is shortened to len characters. mysql> SELECT RPAD('hi',5,'?'); -> 'hi???' mysql> SELECT RPAD('hi',1,'?'); -> 'h'
mace Geschrieben 17. März 2005 Autor Geschrieben 17. März 2005 OK ich versuche mal mit diesen Informationen etwas rumzubasteln! Aber es wär halt am schönsten wenn die Leerzeichen nicht beim abrufen weg wären. Wenn ich zum Beispiel Tabellen aus unserer AS/400 nach Access verknüpfe, habe ich die Leerzeichen immer mit drin, dachte in mysql wär das auch einfacher möglich...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden