han: mysql varchar(200) - 200 zeichen oder 200 byte?

Hey,

wie ist das nochmal, wenn ich in einer mysql_Tabelle ein Feld mit varchar(200) deklariere, wird dann die Zeichenzahl auf 200 begrenzt oder die bytezahl?
Weil wenn's die byte begrenzt hat man ja mit utf8 ein Problem?
Dann bringts nichts, wenn ich einen string auf Zeichen beschränke...

grissle

  1. Hallo!

    wie ist das nochmal, wenn ich in einer mysql_Tabelle ein Feld mit varchar(200) deklariere, wird dann die Zeichenzahl auf 200 begrenzt oder die bytezahl?

    Das ist die Zeichenzahl.

    André Laugks

    --
    Die Frau geht, die Hilti bleibt!
    1. Hallo,

      wie ist das nochmal, wenn ich in einer mysql_Tabelle ein Feld mit varchar(200) deklariere, wird dann die Zeichenzahl auf 200 begrenzt oder die bytezahl?

      Das ist die Zeichenzahl.

      bei mySQL 4.x kann man z.B. nur 6 Umlaute + ß in ein varchar(14) Feld unterbringen, da die 14 Zeichen dann voll sind

      äöüßÄÖÜ = äöüßÄÖÜ

      mfg
      Twilo

      1. Hallo!

        bei mySQL 4.x kann man z.B. nur 6 Umlaute + ß in ein varchar(14) Feld unterbringen, da die 14 Zeichen dann voll sind

        äöüßÄÖÜ = äöüßÄÖÜ

        Ok! Hast gewonnen ;-). Wer lesen kann ist klar im Vorteil...

        André Laugks

        --
        Die Frau geht, die Hilti bleibt!
        1. Hi,

          und was ist mit anderen mysql versionen?

          und wie mach ich dann sinnvoll eine begrenzung der zeichen für z.B. benutzername etc

          gruß

      2. echo $begrüßung;

        wie ist das nochmal, wenn ich in einer mysql_Tabelle ein Feld mit varchar(200) deklariere, wird dann die Zeichenzahl auf 200 begrenzt oder die bytezahl?
        Das ist die Zeichenzahl.

        bei mySQL 4.x kann man z.B. nur 6 Umlaute + ß in ein varchar(14) Feld unterbringen, da die 14 Zeichen dann voll sind.

        Deine Aussage ist so pauschal nicht richtig, da es innerhalb der 4er Reihe zu gravierenden Änderungen kam.

        Bis inklusive Version 4.0 konnte MySQL nicht mit UTF-8 umgehen. Das heißt, es kam nur eine 1-Byte-Zeichenkodierung in Frage.*) Wer UTF-8-kodierte Werte darin speichern will, handelt auf eigenes Risko und muss sich der Nebenwirkungen bewusst sein.

        Ab Version 4.1 wurde das neue Zeichensatzkonzept eingeführt und damit auch Unicode- und UTF-8-Unterstützung. Wenn eine zu den Daten passende Zeichenkodierung verwendet wird entspricht ein Zeichen einem Zeichen aber möglicherweise mehreren Bytes. Die Byte-Zahl muss bei Indizes berücksichtigt werden, da diese nur 1000 Bytes (bzw. 767 bei InnoDB) lang sein dürfen. MySQL reserviert hier stets 3 Bytes pro Zeichen. Das Überschreiten wird jedoch schon beim Index-Anlegen mit einer Fehlermeldung geahndet.

        *) Die in Version 4.0 vorhandenen Multibyte-Kodierungen können hierzulande ignoriert werden.

        echo "$verabschiedung $name";