MySQL에서 문자열을 다룰 때 앞에서부터 원하는 길이만큼 잘라내려면 LEFT() 함수를 사용하고, 뒤에서부터 n개의 문자를 가져오려면 RIGHT() 함수를 사용합니다.
RIGHT() 함수의 기본 문법
SELECT RIGHT(yourColumnName, valueOfN) as anyVariableName from yourTableName;
예제 테이블 생성
RIGHT() 함수의 동작 방식을 이해하기 위해 먼저 테이블을 생성해 보겠습니다. 테이블 생성 쿼리는 다음과 같습니다.
mysql> create table gettingLast5Characters −> ( −> BookName varchar(100) −> ); Query OK, 0 rows affected (0.73 sec)
데이터 삽입
INSERT 명령을 사용해 테이블에 샘플 데이터를 넣어보겠습니다.
mysql> insert into gettingLast5Characters values('Introduction to C');
Query OK, 1 row affected (0.19 sec)
mysql> insert into gettingLast5Characters values('C in Depth');
Query OK, 1 row affected (0.18 sec)
mysql> insert into gettingLast5Characters values('Introduction to Java');
Query OK, 1 row affected (0.18 sec)
mysql> insert into gettingLast5Characters values('Let us C');
Query OK, 1 row affected (0.51 sec)저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회합니다.
mysql> select *from gettingLast5Characters;
실행 결과는 다음과 같습니다.
+----------------------+ | BookName | +----------------------+ | Introduction to C | | C in Depth | | Introduction to Java | | Let us C | +----------------------+ 4 rows in set (0.00 sec)
문자열의 마지막 5자 추출하기
이제 RIGHT() 함수를 활용해 BookName 컬럼 값의 마지막 5자를 가져오는 쿼리입니다.
mysql> select RIGHT(BookName,5) as Last5Character from gettingLast5Characters;
실행 결과는 다음과 같습니다.
+----------------+ | Last5Character | +----------------+ | to C | | Depth | | Java | | us C | +----------------+ 4 rows in set (0.04 sec)
결과 분석 및 주의 사항
위 출력 결과를 자세히 살펴보면 알 수 있듯이, RIGHT() 함수는 공백(스페이스)도 하나의 문자로 계산합니다. 예를 들어 'Introduction to C'의 마지막 5자는 'to C' 앞의 공백까지 포함하여 반환됩니다.
따라서 실무에서 문자열 끝에 불필요한 공백이 있을 가능성이 있다면, TRIM() 함수와 함께 사용하는 것이 좋습니다.
mysql> select RIGHT(TRIM(BookName),5) as Last5Character from gettingLast5Characters;
이처럼 MySQL의 RIGHT() 함수는 문자열 조작 시 매우 유용하게 활용할 수 있으며, LEFT(), SUBSTRING() 등 다른 문자열 함수와 함께 익혀두면 다양한 상황에서 손쉽게 데이터를 가공할 수 있습니다.