CHAR_LENGTH() 또는 CHARACTER_LENGTH() 문자열 함수는 WHERE 절과 함께 사용할 수 있으며, 이 경우 반환되는 결과는 WHERE 절에 지정된 조건에 따라 결정됩니다. 즉, 문자열 길이를 기준으로 원하는 레코드만 필터링하여 조회할 수 있습니다.
예를 들어, 'Student'라는 테이블이 있고 이름의 문자 수가 6자 미만인 학생만 조회하고 싶다고 가정해 보겠습니다. 이때 다음과 같은 쿼리를 작성할 수 있습니다.
예시 테이블 확인
mysql> Select * from Student; +------+---------+---------+-----------+ | Id | Name | Address | Subject | +------+---------+---------+-----------+ | 1 | Gaurav | Delhi | Computers | | 2 | Aarav | Mumbai | History | | 15 | Harshit | Delhi | Commerce | | 20 | Gaurav | Jaipur | Computers | +------+---------+---------+-----------+ 4 rows in set (0.10 sec)
CHAR_LENGTH()와 WHERE 절 조합하기
위 테이블에서 이름 길이가 6자 미만인 학생을 찾으려면 SELECT 문에 WHERE 절과 CHAR_LENGTH() 함수를 함께 사용합니다.
mysql> Select Name, CHAR_LENGTH(Name) from student WHERE CHAR_LENGTH(Name)<6; +-------+-------------------+ | Name | CHAR_LENGTH(Name) | +-------+-------------------+ | Aarav | 5 | +-------+-------------------+ 1 row in set (0.00 sec)
결과 분석
위 쿼리의 실행 결과를 보면, 전체 4개의 레코드 중 'Aarav'(5글자) 하나만 조건을 충족하여 반환되었습니다. 'Gaurav'(6글자), 'Harshit'(7글자)은 각각 6자 이상이므로 결과에서 제외된 것입니다.
이처럼 CHAR_LENGTH() 함수를 WHERE 절에서 활용하면 문자열 데이터의 길이를 손쉽게 검증할 수 있으며, 입력값 유효성 확인, 데이터 정제, 특정 형식의 데이터 추출 등 다양한 상황에서 유용하게 사용됩니다.