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

MySQL에서 열 값의 첫 글자를 추출해 다른 열에 저장하는 방법

MySQL에서 한 열의 값에서 첫 글자만 추출하여 다른 열에 넣고 싶다면 LEFT() 함수를 활용하면 됩니다. LEFT() 함수는 문자열의 왼쪽부터 지정한 개수만큼의 문자를 반환하는 함수로, 첫 글자 하나만 가져올 때 매우 유용합니다.

1. 테이블 생성하기

먼저 예제에 사용할 테이블을 생성합니다. 첫 글자를 저장할 FirstLetter 열과 원본 문자열을 담을 Title 열로 구성합니다.

mysql> create table DemoTable2036
    -> (
    -> FirstLetter varchar(20),
    -> Title varchar(20)
    -> );
Query OK, 0 rows affected (1.01 sec)

2. 데이터 삽입하기

INSERT 명령어를 사용하여 몇 개의 레코드를 추가합니다. 이때 Title 열에만 값을 넣고 FirstLetter 열은 비워둡니다.

mysql> insert into DemoTable2036(Title) values('Chris');
Query OK, 1 row affected (0.14 sec)

mysql> insert into DemoTable2036(Title) values('John');
Query OK, 1 row affected (0.10 sec)

mysql> insert into DemoTable2036(Title) values('Adam');
Query OK, 1 row affected (0.15 sec)

3. 현재 데이터 확인하기

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable2036;

실행 결과는 다음과 같습니다. 아직 FirstLetter 열에는 값이 없으므로 NULL로 표시됩니다.

+-------------+-------+
| FirstLetter | Title |
+-------------+-------+
| NULL | Chris |
| NULL | John |
| NULL | Adam |
+-------------+-------+
3 rows in set (0.00 sec)

4. UPDATE와 LEFT() 함수로 첫 글자 채우기

이제 핵심 단계입니다. UPDATE 문과 함께 left(Title, 1)을 사용하면 Title 열 값의 첫 번째 문자를 추출하여 FirstLetter 열에 저장할 수 있습니다.

mysql> update DemoTable2036
    -> set FirstLetter=left(Title,1);
Query OK, 3 rows affected (0.23 sec)
Rows matched: 3 Changed: 3 Warnings: 0

5. 결과 확인하기

업데이트 후 테이블을 다시 조회해 보면 각 이름의 첫 글자가 정상적으로 저장된 것을 확인할 수 있습니다.

mysql> select *from DemoTable2036;
+-------------+-------+
| FirstLetter | Title |
+-------------+-------+
| C | Chris |
| J | John |
| A | Adam |
+-------------+-------+
3 rows in set (0.00 sec)

추가 팁

특정 조건에 해당하는 행만 업데이트하고 싶다면 WHERE 절을 함께 사용하면 됩니다. 예를 들어 다음과 같이 작성할 수 있습니다.

update DemoTable2036
set FirstLetter = left(Title, 1)
where FirstLetter IS NULL;

또한 INSERT 시점부터 첫 글자를 함께 저장하고 싶다면 아래처럼 VALUES 절에서 직접 LEFT() 함수를 사용할 수도 있습니다.

insert into DemoTable2036(FirstLetter, Title)
values(left('David', 1), 'David');

이처럼 MySQL의 LEFT() 함수를 활용하면 별도의 애플리케이션 로직 없이 SQL문만으로 문자열의 일부를 손쉽게 추출하여 다른 열에 저장할 수 있습니다.