MySQL

MySQL의 두개의 컬럼 합치기, 컬럼이름 변경해서 출력concat(),concat_ws(),as

HooSL 2021. 12. 7. 18:05

예시 문)

INSERT INTO books (title, author_fname, author_lname, released_year, stock_quantity, pages)
VALUES
('The Namesake', 'Jhumpa', 'Lahiri', 2003, 32, 291),
('Norse Mythology', 'Neil', 'Gaiman',2016, 43, 304),
('American Gods', 'Neil', 'Gaiman', 2001, 12, 465),
('Interpreter of Maladies', 'Jhumpa', 'Lahiri', 1996, 97, 198),
('A Hologram for the King: A Novel', 'Dave', 'Eggers', 2012, 154, 352),
('The Circle', 'Dave', 'Eggers', 2013, 26, 504),
('The Amazing Adventures of Kavalier & Clay', 'Michael', 'Chabon', 2000, 68, 634),
('Just Kids', 'Patti', 'Smith', 2010, 55, 304),
('A Heartbreaking Work of Staggering Genius', 'Dave', 'Eggers', 2001, 104, 437),
('Coraline', 'Neil', 'Gaiman', 2003, 100, 208),
('What We Talk About When We Talk About Love: Stories', 'Raymond', 'Carver', 1981, 23, 176),
("Where I'm Calling From: Selected Stories", 'Raymond', 'Carver', 1989, 12, 526),
('White Noise', 'Don', 'DeLillo', 1985, 49, 320),
('Cannery Row', 'John', 'Steinbeck', 1945, 95, 181),
('Oblivion: Stories', 'David', 'Foster Wallace', 2004, 172, 329),
('Consider the Lobster', 'David', 'Foster Wallace', 2005, 92, 343),
('10% Happier', 'Dan', 'Harris', 2014, 29, 256),
('fake_book', 'Freida', 'Harris', 2001, 287, 428),
('Lincoln In the Bardo', 'George', 'Saunders', 2017, 156, 375);

 

 

1. 두개의 컬럼 합치는 첫번째 방법 concat( )

select concat(author_fname,author_lname) 
from books; -- 이럴 경우엔 두 컬럼의 데이터가 붙어 나온다


select concat(author_fname,' ',author_lname) 
from books; -- 두 컬럼 사이에 공백 추가

 

 

2. 두개의 컬럼을 합치는 두번째 방법 concat_ws( )

select concat_ws(' ',author_fname,author_lname) 
from books; -- concat_ws를 사용하고 제일 앞에 두컬럼 사이에 무엇을 넣을지 입력하면 됩니다.


select concat_ws('-',author_fname,author_lname) 
from books;  -- 두컬럼 사이에 - 출력

하지만 위 두가지 예제를 살행하면

두 컬럼이 합쳐지며 지저분하게? 출력됩니다.

그럴땐 as 문을 사용하시면 됩니다.

 

3. 두 컬럼을 합친 후 새 컬럼명으로 출력 

select concat_ws(' ',author_fname,author_lname) 
as full_name  -- as를 통해 컬럼명 변경 _말고 공백으로 하고 싶다면 컬럼명 ''로 묶어주기
from books;

컬럼명이 full_name으로 나오는걸 볼 수 있습니다.