MySQL에서 텍스트 필드로부터 처음 40자를 가져오려면 LEFT() 함수를 사용하면 됩니다. LEFT() 함수는 문자열의 왼쪽부터 지정한 길이만큼의 문자를 반환하는 문자열 함수입니다.
LEFT() 함수 기본 문법
SELECT LEFT(yourColumnName,40) as anyVariableName from yourTableName;
위 문법에서 첫 번째 인수는 대상 컬럼명, 두 번째 인수는 추출할 문자 수를 의미합니다. 별칭(alias)을 지정하면 결과를 더 읽기 쉽게 표시할 수 있습니다.
예제 테이블 생성
개념을 이해하기 위해 먼저 예제용 테이블을 생성해 보겠습니다.
mysql> create table retrieveFirst40Characters -> ( -> AllWords text -> ); Query OK, 0 rows affected (0.59 sec)
테이블 생성이 완료되면 INSERT 명령어를 사용해 샘플 데이터를 입력합니다.
mysql> insert into retrieveFirst40Characters values('This is a query demo to extract a forty characters from a text
'> field,you can use left function to get forty characters');
Query OK, 1 row affected (0.32 sec)저장된 데이터 확인
SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.
mysql> select *from retrieveFirst40Characters;
실행 결과는 다음과 같습니다.
+------------------------------------------------------------------------------------------------------------------------+ | AllWords | +------------------------------------------------------------------------------------------------------------------------+ | This is a demo text displayed in a table for our example | +------------------------------------------------------------------------------------------------------------------------+ 1 row in set (0.00 sec)
처음 40자 추출 쿼리 실행
이제 LEFT() 함수를 활용하여 텍스트 필드에서 처음 40자를 추출하는 실제 쿼리를 살펴보겠습니다.
mysql> select left(AllWords,40) as Retrieve40Characters from retrieveFirst40Characters;
실행 결과, 처음 40자만 정상적으로 출력되는 것을 확인할 수 있습니다.
+------------------------------------------+ | Retrieve40Characters | +------------------------------------------+ | This is a demo text displayed in a table | +------------------------------------------+ 1 row in set (0.03 sec)
정리
MySQL에서 텍스트 필드의 앞부분 일부만 가져오고 싶다면 LEFT() 함수가 가장 간단한 방법입니다. 반대로 문자열의 오른쪽 끝에서부터 추출하고 싶다면 RIGHT() 함수를 사용하면 되며, 중간 부분을 추출할 때는 SUBSTRING() 또는 MID() 함수를 활용할 수 있습니다. 게시판 목록에서 본문 미리보기를 보여주는 등 실무에서 자주 사용되는 기능이므로 꼭 기억해 두시기 바랍니다.