Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

mysql und CHAR-Spaltentyp

Empfohlene Antworten

Veröffentlicht

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,

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*

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 ??

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*

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'

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.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.