Veröffentlicht 16. März 200520 j 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,
17. März 200520 j 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*
17. März 200520 j 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 ??
17. März 200520 j 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*
17. März 200520 j 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'
17. März 200520 j 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...
Archiv
Dieses Thema wurde archiviert und kann nicht mehr beantwortet werden.