LENGTH()
retorna o comprimento da string medido em bytes . CHAR_LENGTH()
retorna o comprimento da string medido em caracteres . Isso é especialmente relevante para Unicode, no qual a maioria dos caracteres é codificada em dois bytes. Ou UTF-8, onde o número de bytes varia. Por exemplo:
select length(_utf8 '€'), char_length(_utf8 '€')
--> 3, 1
Como você pode ver, o sinal do Euro ocupa 3 bytes (está codificado como
0xE282AC
em UTF-8), embora seja apenas um caractere.