LENGTH()
renvoie la longueur de la chaîne mesurée en octets . CHAR_LENGTH()
renvoie la longueur de la chaîne mesurée en caractères .
Ceci est particulièrement pertinent pour Unicode, dans lequel la plupart des caractères sont codés sur deux octets. Ou UTF-8, où le nombre d'octets varie. Par exemple :
select length(_utf8 '€'), char_length(_utf8 '€')
--> 3, 1
Comme vous pouvez le voir, le signe Euro occupe 3 octets (il est encodé sous la forme 0xE282AC
en UTF-8) même s'il ne s'agit que d'un seul caractère.