데이터 베이스

[MySQL] 문자열 함수, 'LENGTH( )'와 'CHAR_LENGTH( )'의 차이

ImKDM 2022. 3. 28. 21:27
728x90

LENGTH  는 문자열의 '바이트 길이'를 가져오는 함수이다.

 

한글은 한 글자를 표현하기 위해서 3 byte 를 사용하기 때문에, LENGTH 함수로 읽으면 한 글자당 3 을 출력한다.

따라서 LENGTH 로 '안녕' 을 읽으면 6 이 출력된다.

반대로 영어는 한 글자가 1 byte 이라서 알파벳 개수만큼 출력된다.

 

 

SELECT LENGTH('안녕');  --  6
SELECT LENGTH('abcd');  --  4

 

 

CHAR_LENGTH  는 문자열의 길이를 가져오는 함수이다.

 

문자의 byte 수를 계산하기 않고 단순히 몇 개의 문자가 있는지를 가져오는 함수이다.

따라서 문자열의 길이를 알기 위해서는 CHAR_LENGTH 를 사용하는 것이 좋다.

 

 

SELECT CHAR_LENGTH('안녕');  --  2
SELECT CHAR_LENGTH('abcd');  --  4