LENGTH()
zwraca długość ciągu mierzoną w bajtach . CHAR_LENGTH()
zwraca długość ciągu mierzoną w znakach .
Jest to szczególnie istotne w przypadku Unicode, w którym większość znaków jest zakodowana w dwóch bajtach. Lub UTF-8, gdzie liczba bajtów jest różna. Na przykład:
select length(_utf8 '€'), char_length(_utf8 '€')
--> 3, 1
Jak widać znak Euro zajmuje 3 bajty (jest zakodowany jako 0xE282AC
w UTF-8), mimo że jest to tylko jeden znak.