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

MySQL에서 단일 열에 여러 매개변수 값을 삽입하는 방법

MySQL 단일 열에 여러 값 삽입하기

MySQL에서 여러 매개변수 값을 하나의 열에 삽입하려면 CONCAT_WS() 또는 CONCAT() 함수를 사용하면 됩니다. CONCAT_WS()는 구분자를 지정할 수 있어 여러 값을 하나의 문자열로 깔끔하게 결합하는 데 특히 유용합니다.

먼저 예제에 사용할 테이블을 생성해 보겠습니다.

mysql> create table DemoTable
(
    Name varchar(100),
    Age int,
    CountryName varchar(100),
    PersonInformation text
);
Query OK, 0 rows affected (0.67 sec)

INSERT 문과 CONCAT_WS() 활용하기

이제 일반적인 레코드 삽입에 사용하는 INSERT 명령어와 함께 CONCAT_WS()를 사용하여 여러 매개변수 값을 단일 열에 삽입해 보겠습니다. 아래 예시에서는 하이픈(-)을 구분자로 사용하여 이름, 나이, 국가명을 하나의 문자열로 결합합니다.

mysql> insert into DemoTable values('John',21,'US',concat_ws('-',Name,Age,CountryName));
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('Chris',22,'AUS',concat_ws('-',Name,Age,CountryName));
Query OK, 1 row affected (0.15 sec)
mysql> insert into DemoTable values('Bob',24,'UK',concat_ws('-',Name,Age,CountryName));
Query OK, 1 row affected (0.17 sec)

결과 확인하기

SELECT 문을 사용하여 테이블의 모든 레코드를 조회합니다.

mysql> select *from DemoTable;

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

+-------+------+-------------+-------------------+
| Name  | Age  | CountryName | PersonInformation |
+-------+------+-------------+-------------------+
| John  | 21   | US          | John-21-US        |
| Chris | 22   | AUS         | Chris-22-AUS      |
| Bob   | 24   | UK          | Bob-24-UK         |
+-------+------+-------------+-------------------+
3 rows in set (0.00 sec)

CONCAT()와 CONCAT_WS()의 차이점

CONCAT() 함수는 인수로 전달된 문자열들을 그대로 이어 붙입니다. 반면 CONCAT_WS()는 첫 번째 인수로 구분자를 받아 각 값 사이에 자동으로 삽입해 주므로, 위 예제처럼 일정한 형식으로 데이터를 결합할 때 더 편리합니다.

참고로 CONCAT()를 사용할 경우 NULL 값이 하나라도 포함되면 전체 결과가 NULL이 되지만, CONCAT_WS()는 NULL 값을 건너뛰고 나머지 값들을 결합한다는 장점도 있습니다.