본문으로 건너뛰기
최종 수정: 에

LENGTH

설명​

LENGTH 함수는 문자열의 바이트 길이(바이트 단위)를 반환합니다. 이 함수는 문자 수가 아니라 UTF-8 인코딩에서 문자열이 차지하는 바이트 수를 계산합니다.

CHAR_LENGTH와의 차이점에 유의하세요:

  • LENGTH()는 바이트 수를 반환합니다.
  • CHAR_LENGTH()와 CHARACTER_LENGTH()는 문자 수를 반환합니다.
  • ASCII 문자는 바이트 수와 문자 수가 같습니다.
  • 멀티바이트 문자(예: 중국어 문자, 이모지)는 일반적으로 바이트 수가 문자 수보다 큽니다.

별칭​

  • OCTET_LENGTH()

구문​

LENGTH(<str>)

매개변수​

매개변수설명
<str>바이트 길이를 계산할 문자열입니다. 타입: VARCHAR

반환값​

문자열의 바이트 길이를 나타내는 INT 타입 값을 반환합니다.

특수한 경우:

  • 매개변수가 NULL이면 NULL을 반환합니다.
  • 빈 문자열은 0을 반환합니다.
  • 결과는 UTF-8 인코딩에서의 바이트 수입니다.

예제​

  1. ASCII 문자(바이트 수 = 문자 수)
SELECT LENGTH('abc'), CHAR_LENGTH('abc');
+---------------+--------------------+
| LENGTH('abc') | CHAR_LENGTH('abc') |
+---------------+--------------------+
| 3 | 3 |
+---------------+--------------------+
  1. 중국어 문자(바이트 수 > 문자 수)
SELECT LENGTH('中国'), CHAR_LENGTH('中国');
+------------------+---------------------+
| LENGTH('中国') | CHAR_LENGTH('中国') |
+------------------+---------------------+
| 6 | 2 |
+------------------+---------------------+
  1. NULL 값 처리
SELECT LENGTH(NULL);
+--------------+
| LENGTH(NULL) |
+--------------+
| NULL |
+--------------+
  1. 빈 문자열
SELECT LENGTH('');
+------------+
| LENGTH('') |
+------------+
| 0 |
+------------+
  1. 여러 종류의 문자가 섞인 문자열
SELECT LENGTH('Hello世界'), CHAR_LENGTH('Hello世界');
+-----------------------+----------------------------+
| LENGTH('Hello世界') | CHAR_LENGTH('Hello世界') |
+-----------------------+----------------------------+
| 11 | 7 |
+-----------------------+----------------------------+
  1. 이스케이프 문자와 ASCII 공백
SELECT LENGTH('\t\n\r'), LENGTH('  ');
+------------------+--------------+
| LENGTH('\t\n\r') | LENGTH(' ') |
+------------------+--------------+
| 3 | 2 |
+------------------+--------------+
  1. UTF-8 멀티바이트 문자와 문자 수 비교
SELECT LENGTH('ṭṛì'), CHAR_LENGTH('ṭṛì');
+--------------------+-------------------------+
| LENGTH('ṭṛì') | CHAR_LENGTH('ṭṛì') |
+--------------------+-------------------------+
| 8 | 3 |
+--------------------+-------------------------+
  1. 이모지(일반적으로 글리프당 4바이트)
SELECT LENGTH('😀😁'), CHAR_LENGTH('😀😁');
+--------------------+-------------------------+
| LENGTH('😀😁') | CHAR_LENGTH('😀😁') |
+--------------------+-------------------------+
| 8 | 2 |
+--------------------+-------------------------+
  1. 숫자로 이루어진 문자열
SELECT LENGTH('12345'), CHAR_LENGTH('12345');
+-----------------+----------------------+
| LENGTH('12345') | CHAR_LENGTH('12345') |
+-----------------+----------------------+
| 5 | 5 |
+-----------------+----------------------+