MySQL에서 숫자로 된 쿼리 결과를 분할하려면 CONCAT() 함수를 사용하면 됩니다. 이 함수는 여러 문자열을 하나로 연결해 주는 역할을 하며, LEFT() 및 RIGHT() 함수와 함께 사용하면 원하는 위치를 기준으로 숫자 값을 손쉽게 나눌 수 있습니다.
1. 테이블 생성하기
먼저 실습에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
StudentId int
);
Query OK, 0 rows affected (0.68 sec)2. 데이터 삽입하기
INSERT 명령을 사용하여 테이블에 샘플 레코드를 추가합니다.
mysql> insert into DemoTable values(2222); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(5555); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(4567); Query OK, 1 row affected (0.13 sec) mysql> insert into DemoTable values(8905); Query OK, 1 row affected (0.15 sec)
3. 전체 레코드 조회하기
SELECT 문을 사용하여 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
출력 결과
+-----------+ | StudentId | +-----------+ | 2222 | | 5555 | | 4567 | | 8905 | +-----------+ 4 rows in set (0.00 sec)
4. 숫자 값 분할 쿼리 실행하기
다음은 숫자 쿼리 결과를 분할하는 쿼리입니다. 이 예제에서는 값의 첫 번째 자릿수를 기준으로 앞부분과 나머지 부분을 구분하여 슬래시(/)로 연결했습니다.
- LEFT(StudentId, 1) : 첫 번째 자릿수를 추출합니다.
- RIGHT(StudentId, LENGTH(StudentId)-1) : 첫 자릿수를 제외한 나머지 숫자를 추출합니다.
- CONCAT() : 두 부분 사이에 '/' 기호를 넣어 하나의 문자열로 합칩니다.
mysql> select concat(left(StudentId, 1), '/',right(StudentId, length(StudentId)-1)) splitNumericalValue from DemoTable;
출력 결과
+---------------------+ | splitNumericalValue | +---------------------+ | 2/222 | | 5/555 | | 4/567 | | 8/905 | +---------------------+ 4 rows in set (0.00 sec)
위 출력 결과에서 볼 수 있듯이 각 숫자 값이 첫 번째 자릿수와 나머지 부분으로 성공적으로 분할된 것을 확인할 수 있습니다. 이 방법을 응용하면 특정 자릿수를 기준으로 전화번호, 날짜, 코드 등 다양한 형식의 숫자 데이터를 원하는 대로 가공할 수 있습니다.