MySQL에서 특정 열의 처음 n개 문자만 추출하고 싶다면 LEFT() 함수를 사용하면 됩니다. 이 함수는 지정한 개수만큼 왼쪽(앞부분)에서부터 문자열을 잘라서 반환해 줍니다.
LEFT() 함수 기본 문법
SELECT LEFT(yourColumnName, yourValue) FROM yourTableName;
- yourColumnName : 문자를 추출할 대상 열의 이름
- yourValue : 반환받고자 하는 문자의 개수(n)
예제 테이블 생성
먼저 실습에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
-> (
-> Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> CourseTitle text
-> );
Query OK, 0 rows affected (0.65 sec)데이터 삽입
INSERT 명령을 사용해 테이블에 샘플 데이터를 추가합니다.
mysql> insert into DemoTable(CourseTitle) values('Java with Spring and Hibernate framework');
Query OK, 1 row affected (0.43 sec)
mysql> insert into DemoTable(CourseTitle) values('Python Web Development');
Query OK, 1 row affected (0.22 sec)전체 데이터 확인
SELECT 문으로 테이블에 저장된 모든 레코드를 조회해 보겠습니다.
mysql> select *from DemoTable;
출력 결과
+----+------------------------------------------+ | Id | CourseTitle | +----+------------------------------------------+ | 1 | Java with Spring and Hibernate framework | | 2 | Python Web Development | +----+------------------------------------------+ 2 rows in set (0.00 sec)
LEFT() 함수로 앞 20글자 추출하기
이제 CourseTitle 열에서 처음 20개 문자만 반환하는 쿼리를 실행해 보겠습니다.
mysql> select LEFT(CourseTitle,20) from DemoTable;
출력 결과
+----------------------+ | left(CourseTitle,20) | +----------------------+ | Java with Spring and | | Python Web Developme | +----------------------+ 2 rows in set (0.00 sec)
실행 결과를 보면 각 강좌 제목에서 정확히 앞 20글자만 잘려서 출력된 것을 확인할 수 있습니다. 이처럼 LEFT() 함수는 게시판 목록에서 제목 일부만 미리보기로 보여주거나, 긴 문자열을 요약해서 표시해야 할 때 매우 유용하게 활용됩니다.