Database ( DB )/Database

[MySQL] 문자열 길이 가져오기(length, char_length 함수)

노루아부지 2021. 5. 16. 20:59

일반적으로 query를 하거나, 프로그램 개발을 하다보면 문자열의 길이를 구해야 하는 경우가 생각보다 많습니다.

MySQL의 경우 문자열의 길이를 가져올 때 사용하는 함수는 LENGTH함수입니다.

하지만 테스트로 LENGTH('abcde')를 실행해보고 결과값이 5가 나왔다고 프로그램에 적용해 버리면 차후 문제가 발생할 수 있습니다.

그 이유는 length가 문자열의 자릿수가 아니라 문자열의 Byte 길이를 가져오기 때문입니다. 그렇기 때문에 문자열의 길이를 알기 위해서는 CHAR_LENGTH를 사용해야 합니다.

(왜 한글은 1byte가 아닌 것인가)

 

참조 : mysql 공식 문자열 함수 메뉴얼

 

예제 쿼리(Example query)

 

1) LENGTH(영어)

SELECT LENGTH('ABCDE');

결과: 5

 

 

2) LENGTH(한글)

SELECT LENGTH('안녕');

결과: 6

 

 

 

3) CHAR_LENGTH(영어)

SELECT CHAR_LENGTH('ABCDE');

결과: 5

 

 

4) CHAR_LENGTH(한글)

SELECT CHAR_LENGTH('안녕');

결과: 2

728x90
loading