MySQL에서 하나의 열 값을 한 번의 쿼리로 두 번 표시하고 싶다면 concat() 함수를 활용하면 됩니다. concat()은 여러 문자열이나 값을 하나로 이어 붙여주는 함수로, 같은 열을 구분자와 함께 반복해서 출력할 때 매우 유용합니다.
1. 테이블 생성하기
먼저 예제에 사용할 테이블을 생성해 보겠습니다.
mysql> create table DemoTable
(
Value int
);
Query OK, 0 rows affected (0.73 sec)2. 데이터 삽입하기
insert 명령을 사용하여 테이블에 여러 개의 레코드를 삽입합니다.
mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.18 sec) mysql> insert into DemoTable values(200); Query OK, 1 row affected (0.08 sec) mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(200); Query OK, 1 row affected (0.10 sec) mysql> insert into DemoTable values(200); Query OK, 1 row affected (0.11 sec) mysql> insert into DemoTable values(100); Query OK, 1 row affected (0.30 sec)
3. 전체 레코드 조회하기
select 문으로 테이블에 저장된 모든 레코드를 확인합니다.
mysql> select *from DemoTable;
위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.
+-------+ | Value | +-------+ | 100 | | 200 | | 100 | | 200 | | 200 | | 100 | +-------+ 6 rows in set (0.00 sec)
4. 열 값을 두 번 표시하는 쿼리
이제 concat() 함수를 사용하여 열 값을 '~' 구분자와 함께 두 번 표시하는 방법을 살펴보겠습니다. group by 절을 함께 사용하면 중복된 값 없이 고유한 값별로 결과를 확인할 수 있습니다.
mysql> select concat(Value,'~',Value) from DemoTable group by Value;
실행 결과는 다음과 같습니다.
+-------------------------+ | concat(Value,'~',Value) | +-------------------------+ | 100~100 | | 200~200 | +-------------------------+ 2 rows in set (0.00 sec)
참고 사항
concat() 함수 안의 구분자('~')는 원하는 문자나 기호로 자유롭게 변경할 수 있습니다. 예를 들어 쉼표(',')나 하이픈('-') 등을 사용해도 무방합니다. 또한 group by를 생략하면 모든 행에 대해 값이 두 번씩 표시되므로, 목적에 맞게 선택하여 사용하시기 바랍니다.