MySQL에서 두 열 연결
이 기사에서는 MySQL
에서 두 열의 데이터를 연결하는 다양한 방법을 보여줍니다. 이 작업은 MySQL
테이블에서 필드를 선택하고 해당 값을 연결한 후 하나의 변수에 값을 저장하여 프로그래밍 방식으로 쉽게 수행할 수 있습니다.
데이터베이스 테이블에서 행을 선택할 때 값을 연결하여 위의 절차를 단순화할 수 있습니다.
이제 간단한 예를 들어 보겠습니다. 데이터베이스에 이름과 성으로 두 개의 별도 열이 있고 두 열의 값을 단일 문자열 전체 이름으로 표시하려는 경우 주어진 두 가지 접근 방식 중 하나를 사용하여 작업을 수행할 수 있습니다. 유사하게, 주소가 데이터베이스에서 여러 열로 분할되고 애플리케이션에서 도시, 주 및 국가를 포함하는 단일 주소로 원하는 경우 CONCAT
기능은 매우 유용할 것입니다.
두 가지 다른 기능을 사용하여 이 작업을 수행할 수 있습니다.
CONCAT
기능 사용CONCAT_WS
기능 사용
CONCAT()
및 CONCAT_WS()
함수는 둘 이상의 문자열을 연결합니다. 이 두 함수는 CONCAT_WS()
함수가 문자열 사이의 구분 기호와 함께 작동하는 반면 CONCAT()
함수는 구분 기호의 사용을 허용하지 않기 때문에 다릅니다. CONCAT()
함수는 인수 중 하나라도 NULL
인 경우 NULL
값을 반환한다는 점에서 이러한 함수 사이에는 또 다른 중요한 차이점이 있습니다. 대조적으로 CONCAT_WS()
함수는 구분 기호가 NULL
인 경우에만 NULL
값을 반환합니다.
다음 스크립트는 4개의 열(sid
, firstname
, lastname
및 email
)이 있는 student
테이블을 만듭니다.
CREATE TABLE student (sid INT, firstname VARCHAR(20) NOT NULL, lastname VARCHAR(20) NOT NULL, email VARCHAR(55) NOT NULL);
여기에서 데모를 위해 학생 테이블에 샘플 데이터 값을 삽입
합니다.
INSERT INTO student
VALUES (111,'Sim','Marlw','sim.marlw@gmail.com'),
(124,'John','Carl','John.carl@gmail.com'),
(362,'Paul','cohelo','paul.coh@google.com'),
(244,'Lunas','sen','Lonas.sen@max.com');
INSERT INTO student
VALUES (114,'Jaine','Kora','jaine.kora@abs.com'),
(615,'Roma','Sholy','roma.sh11@yahoo.com'),
(997,'Beaon','shrlon','beatrice.ss22@yahoo.com'),
(332,'Peter','cohelo','peter.coh@google.com');
아래 주어진 쿼리는 학생 테이블의 모든 데이터를 반환합니다.
SELECT * FROM student order by sid;
MySQL에서 CONCAT
함수를 사용하여 열 연결
CONCAT
함수는 여러 열의 값을 단일 열로 연결하거나 결합할 수 있습니다. CONCAT
함수의 구문은 다음과 같습니다.
CONCAT(Column 1, column 2,......)
이제 SELECT
쿼리와 함께 이것을 사용하는 방법을 볼 것입니다.
SELECT sid, CONCAT(firstname, " ", lastname) AS fullname FROM student;
출력은 다음과 같습니다.
참고: 원본 테이블은 업데이트되지 않습니다. select
쿼리를 사용하여 프롬프트에 내용을 표시할 수 있습니다.
MySQL에서 CONCAT_WS
함수를 사용하여 열 연결
CONCAT_WS
함수는 여러 열의 값을 단일 열로 연결하거나 결합할 수도 있습니다. 열 값 또는 문자열과 함께 구분 기호를 추가하는 추가 기능이 있습니다. 이 구분 기호는 쉼표(,), 하이픈(-), 밑줄(_) 또는 정적 문자열이나 패턴(***) 등일 수 있습니다. CONCAT_WS
함수의 구문은 다음과 같습니다.
CONCAT_WS(SEPARATOR,Column 1, column 2,......)
이제 SELECT
쿼리와 함께 이것을 사용하는 방법을 볼 것입니다.
SELECT sid, CONCAT_WS( "_", firstname, lastname,"***" ) AS fullname FROM student;
출력은 다음과 같습니다.