개요
MySQL에서 LEFT() 함수를 사용하면 문자열의 왼쪽부터 지정한 길이만큼의 문자를 손쉽게 추출할 수 있습니다. 예를 들어 'EMP-2110/Carol'처럼 슬래시(/)가 포함된 직원 코드에서 슬래시 앞부분만 가져오고 싶을 때 유용하게 활용할 수 있습니다.
이번 글에서는 실제 예제를 통해 LEFT 함수로 슬래시 앞의 문자열만 조회하는 방법을 단계별로 살펴보겠습니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성합니다.
mysql> create table DemoTable1418
-> (
-> EmployeeCode text
-> );
Query OK, 0 rows affected (0.51 sec)
EmployeeCode라는 TEXT 타입 컬럼 하나를 가진 간단한 테이블입니다.
2. 샘플 데이터 삽입하기
INSERT 문을 사용해 슬래시가 포함된 직원 코드 데이터를 몇 개 넣어 보겠습니다.
mysql> insert into DemoTable1418 values('EMP-2110/Carol');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable1418 values('EMP-1900/David');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable1418 values('EMP-2345/Mike');
Query OK, 1 row affected (0.17 sec)3. 전체 레코드 확인하기
SELECT 문으로 테이블에 저장된 모든 레코드를 조회합니다.
mysql> select * from DemoTable1418;
실행 결과는 다음과 같습니다.
+----------------+
| EmployeeCode |
+----------------+
| EMP-2110/Carol |
| EMP-1900/David |
| EMP-2345/Mike |
+----------------+
3 rows in set (0.00 sec)
4. LEFT 함수로 슬래시 앞 문자열 추출하기
이제 핵심인 LEFT 함수를 적용해 보겠습니다. LEFT(컬럼명, 길이) 형태로 작성하며, 여기서는 왼쪽 8자리('EMP-2110' 등)만 추출합니다.
mysql> select left(EmployeeCode,8) from DemoTable1418;
실행 결과는 다음과 같습니다.
+----------------------+
| left(EmployeeCode,8) |
+----------------------+
| EMP-2110 |
| EMP-1900 |
| EMP-2345 |
+----------------------+
3 rows in set (0.00 sec)
마무리 및 참고 사항
위 예제에서 볼 수 있듯이, LEFT(EmployeeCode, 8)은 각 코드에서 슬래시를 제외한 앞 8자리('EMP-2110', 'EMP-1900', 'EMP-2345')를 정확히 반환합니다.
다만 이 방식은 코드 길이가 항상 일정할 때만 유효합니다. 만약 슬래시 앞 문자열의 길이가 제각각이라면 SUBSTRING_INDEX(EmployeeCode, '/', 1)를 사용하는 것이 더 안전합니다. SUBSTRING_INDEX는 구분자를 기준으로 문자열을 잘라주기 때문에 가변 길이 데이터에도 유연하게 대응할 수 있습니다.