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

MySQL에서 문자열의 첫 글자만 대문자로 변환하는 방법

MySQL에는 문자열의 첫 글자만 대문자로 변환해 주는 단일 함수가 존재하지 않습니다. 따라서 여러 함수를 중첩하여 사용해야 하며, 이 경우 UPPER(), LOWER(), SUBSTRING() 함수를 조합하면 원하는 결과를 얻을 수 있습니다.

예제 데이터 확인

먼저 'emp_tbl' 테이블에 저장된 아래 데이터를 살펴보겠습니다.

mysql> Select * from emp_tbl;
+----+----------------+
| Id | Name           |
+----+----------------+
| 1  | rahul singh    |
| 2  | gaurav kumar   |
| 3  | yashpal sharma |
| 4  | krishan kumar  |
| 5  | kuldeep rai    |
| 6  | munish nayak   |
+----+----------------+
6 rows in set (0.00 sec)

위 결과 집합에서 볼 수 있듯이 이름 문자열의 첫 글자가 모두 소문자로 되어 있습니다. 이제 다음 쿼리를 사용하면 각 이름의 첫 글자를 대문자로 변환할 수 있습니다.

첫 글자를 대문자로 변환하는 쿼리

mysql> Select CONCAT(UPPER(SUBSTRING(name,1,1)),LOWER(SUBSTRING(name,2))) AS Name from emp_tbl;
+----------------+
| Name           |
+----------------+
| Rahul singh    |
| Gaurav kumar   |
| Yashpal sharma |
| Krishan kumar  |
| Kuldeep rai    |
| Munish nayak   |
+----------------+
6 rows in set (0.00 sec)

쿼리 동작 원리

이 쿼리가 작동하는 방식은 다음과 같습니다.

SUBSTRING(name, 1, 1)은 문자열의 첫 번째 문자를 추출하고, UPPER()가 해당 문자를 대문자로 변환합니다. 그다음 SUBSTRING(name, 2)는 두 번째 문자부터 나머지 전체를 추출하며, LOWER()가 이 부분을 모두 소문자로 만듭니다. 마지막으로 CONCAT()이 두 결과를 하나의 문자열로 연결하여 첫 글자만 대문자인 완성된 이름을 반환합니다.

참고로 MySQL 8.0 이상 버전에서는 정규표현식 함수인 REGEXP_REPLACE()를 활용하는 방법도 있지만, 위와 같은 SUBSTRING 방식이 가장 널리 사용되며 모든 버전에서 호환됩니다.