반응형
일반적으로 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
반응형
'Database ( DB ) > Database' 카테고리의 다른 글
java - write to file (0) | 2021.05.16 |
---|---|
DBMS별 함수 비교 (0) | 2021.05.16 |
MariaDB 10.4 대소문자 구분 설정하는 방법 (0) | 2021.05.02 |
DBCP valicationQuery 설정 (0) | 2021.01.31 |
CentOS 7] MariaDB(mysql) 외부 접속 가능하게 하는 방법 (0) | 2021.01.02 |