Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 문자열의 첫 글자만 남기고 나머지 문자를 모두 제거하는 방법

MySQL에서 문자열의 첫 번째 문자만 남기고 나머지를 모두 제거하려면 LEFT() 함수를 사용하면 됩니다. LEFT() 함수는 문자열 왼쪽부터 지정한 개수만큼의 문자를 반환하는 함수로, 두 번째 인자에 1을 전달하면 첫 글자만 추출할 수 있습니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> FirstName varchar(100)
-> );
Query OK, 0 rows affected (0.96 sec)

2. 데이터 삽입하기

INSERT 명령을 사용하여 몇 개의 레코드를 추가합니다.

mysql> insert into DemoTable values('Sam');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values('Mike');
Query OK, 1 row affected (0.15 sec)

mysql> insert into DemoTable values('David');
Query OK, 1 row affected (0.14 sec)

3. 전체 레코드 조회하기

SELECT 문으로 테이블의 모든 레코드를 확인합니다.

mysql> select *from DemoTable;

출력 결과

+-----------+
| FirstName |
+-----------+
| Sam |
| Mike |
| David |
+-----------+
3 rows in set (0.00 sec)

4. 첫 글자 외의 문자 제거하기

다음은 UPDATE 문과 LEFT() 함수를 조합하여 문자열의 첫 번째 문자를 제외한 모든 문자를 제거하는 쿼리입니다.

mysql> update DemoTable set FirstName=left(FirstName,1);
Query OK, 3 rows affected (0.13 sec)
Rows matched: 3 Changed: 3 Warnings: 0

LEFT(FirstName, 1)은 FirstName 컬럼 값의 왼쪽에서 한 글자만 가져오므로, 업데이트 후에는 각 이름의 이니셜만 남게 됩니다.

5. 결과 확인하기

변경된 테이블을 다시 조회해 보겠습니다.

mysql> select *from DemoTable;

출력 결과

+-----------+
| FirstName |
+-----------+
| S |
| M |
| D |
+-----------+
3 rows in set (0.00 sec)

위와 같이 'Sam' → 'S', 'Mike' → 'M', 'David' → 'D'로 변경되어 각 문자열의 첫 글자만 남은 것을 확인할 수 있습니다.

참고: SUBSTRING 함수 활용

LEFT() 대신 SUBSTRING() 함수를 사용해도 동일한 결과를 얻을 수 있습니다.

mysql> update DemoTable set FirstName=substring(FirstName,1,1);

SUBSTRING(문자열, 시작 위치, 길이) 형태로 작성하며, 시작 위치는 1부터 계산됩니다. 상황에 따라 LEFT()가 더 직관적이므로 일반적으로 LEFT() 사용을 권장합니다.