LENGTH()
trả về độ dài của chuỗi được tính bằng byte .
CHAR_LENGTH()
trả về độ dài của chuỗi được tính bằng ký tự .
Điều này đặc biệt liên quan đến Unicode, trong đó hầu hết các ký tự được mã hóa thành hai byte. Hoặc UTF-8, nơi số lượng byte thay đổi. Ví dụ:
select length(_utf8 '€'), char_length(_utf8 '€')
--> 3, 1
Như bạn có thể thấy ký hiệu Euro chiếm 3 byte (nó được mã hóa là 0xE282AC
trong UTF-8) mặc dù nó chỉ là một ký tự.