Concept Flow - LENGTH and CHAR_LENGTH
Input String
Output: Byte Count
Input String
Output: Character Count
LENGTH counts bytes in a string, CHAR_LENGTH counts characters. For ASCII, both are same; for multibyte (e.g., UTF-8), LENGTH can be larger.
SELECT LENGTH('hello'), CHAR_LENGTH('hello'); SELECT LENGTH('café'), CHAR_LENGTH('café');
| Step | Input String | Function | Result | Explanation |
|---|---|---|---|---|
| 1 | 'hello' | LENGTH('hello') | 5 | Each ASCII character is 1 byte, total 5 bytes |
| 2 | 'hello' | CHAR_LENGTH('hello') | 5 | 5 characters in string |
| 3 | 'café' | LENGTH('café') | 5 | é is 2 bytes in UTF-8, total bytes = 4 + 1 = 5 |
| 4 | 'café' | CHAR_LENGTH('café') | 4 | 4 characters total, counting accented as one character |
| Variable | Start | After Step 1 | After Step 2 | After Step 3 | After Step 4 | Final |
|---|---|---|---|---|---|---|
| Input String | '' | 'hello' | 'hello' | 'café' | 'café' | 'café' |
| LENGTH Result | null | 5 | 5 | 5 | 5 | 5 |
| CHAR_LENGTH Result | null | - | 5 | - | 4 | 4 |
LENGTH(string) returns number of bytes in string. CHAR_LENGTH(string) returns number of characters. For ASCII, both are equal. For multibyte chars (e.g., UTF-8), LENGTH >= CHAR_LENGTH. Use CHAR_LENGTH to count characters, LENGTH for bytes.