LENGTH()
restituisce la lunghezza della stringa misurata in byte . CHAR_LENGTH()
restituisce la lunghezza della stringa misurata in caratteri .
Ciò è particolarmente rilevante per Unicode, in cui la maggior parte dei caratteri è codificata in due byte. O UTF-8, dove varia il numero di byte. Ad esempio:
select length(_utf8 '€'), char_length(_utf8 '€')
--> 3, 1
Come puoi vedere il segno dell'euro occupa 3 byte (è codificato come 0xE282AC
in UTF-8) anche se è un solo carattere.