최종 수정: 에
LENGTH
설명
LENGTH 함수는 문자열의 바이트 길이(바이트 단위)를 반환합니다. 이 함수는 문자 수가 아니라 UTF-8 인코딩에서 문자열이 차지하는 바이트 수를 계산합니다.
CHAR_LENGTH와의 차이점에 유의하세요:
LENGTH()는 바이트 수를 반환합니다.CHAR_LENGTH()와CHARACTER_LENGTH()는 문자 수를 반환합니다.- ASCII 문자는 바이트 수와 문자 수가 같습니다.
- 멀티바이트 문자(예: 중국어 문자, 이모지)는 일반적으로 바이트 수가 문자 수보다 큽니다.
별칭
OCTET_LENGTH()
구문
LENGTH(<str>)
매개변수
| 매개변수 | 설명 |
|---|---|
<str> | 바이트 길이를 계산할 문자열입니다. 타입: VARCHAR |
반환값
문자열의 바이트 길이를 나타내는 INT 타입 값을 반환합니다.
특수한 경우:
- 매개변수가 NULL이면 NULL을 반환합니다.
- 빈 문자열은 0을 반환합니다.
- 결과는 UTF-8 인코딩에서의 바이트 수입니다.
예제
- ASCII 문자(바이트 수 = 문자 수)
SELECT LENGTH('abc'), CHAR_LENGTH('abc');
+---------------+--------------------+
| LENGTH('abc') | CHAR_LENGTH('abc') |
+---------------+--------------------+
| 3 | 3 |
+---------------+--------------------+
- 중국어 문자(바이트 수 > 문자 수)
SELECT LENGTH('中国'), CHAR_LENGTH('中国');
+------------------+---------------------+
| LENGTH('中国') | CHAR_LENGTH('中国') |
+------------------+---------------------+
| 6 | 2 |
+------------------+---------------------+
- NULL 값 처리
SELECT LENGTH(NULL);
+--------------+
| LENGTH(NULL) |
+--------------+
| NULL |
+--------------+
- 빈 문자열
SELECT LENGTH('');
+------------+
| LENGTH('') |
+------------+
| 0 |
+------------+
- 여러 종류의 문자가 섞인 문자열
SELECT LENGTH('Hello世界'), CHAR_LENGTH('Hello世界');
+-----------------------+----------------------------+
| LENGTH('Hello世界') | CHAR_LENGTH('Hello世界') |
+-----------------------+----------------------------+
| 11 | 7 |
+-----------------------+----------------------------+
- 이스케이프 문자와 ASCII 공백
SELECT LENGTH('\t\n\r'), LENGTH(' ');
+------------------+--------------+
| LENGTH('\t\n\r') | LENGTH(' ') |
+------------------+--------------+
| 3 | 2 |
+------------------+--------------+
- UTF-8 멀티바이트 문자와 문자 수 비교
SELECT LENGTH('ṭṛì'), CHAR_LENGTH('ṭṛì');
+--------------------+-------------------------+
| LENGTH('ṭṛì') | CHAR_LENGTH('ṭṛì') |
+--------------------+-------------------------+
| 8 | 3 |
+--------------------+-------------------------+
- 이모지(일반적으로 글리프당 4바이트)
SELECT LENGTH('😀😁'), CHAR_LENGTH('😀😁');
+--------------------+-------------------------+
| LENGTH('😀😁') | CHAR_LENGTH('😀😁') |
+--------------------+-------------------------+
| 8 | 2 |
+--------------------+-------------------------+
- 숫자로 이루어진 문자열
SELECT LENGTH('12345'), CHAR_LENGTH('12345');
+-----------------+----------------------+
| LENGTH('12345') | CHAR_LENGTH('12345') |
+-----------------+----------------------+
| 5 | 5 |
+-----------------+----------------------+