본문 바로가기
MYSQL

MYSQL - 문자열을 합치는 concat( ), concat_ws( )

by 하니__ 2024. 5. 13.
select author_fname, author_lname
from books;

 
 
라고 할때
 

f_name과 l_name을 합쳐 Full_name이라는 컬럼을 만들고 싶다

 
이럴때에는 concat( )을 사용한다 
 
사용법은

select concat(author_fname, author_lname)
from books;

 
합치고 싶은 컬럼을
concat( )로 묶어주면

이렇게 합쳐진다
하지만
 
문자열이 다닥다닥 붙어있어 어디까지가
f_name고 l_name인지 구분이 잘 가지않는다
 
합칠때 공백을 넣어줬으면 좋겠다
 
이럴때에는
 

select concat(author_fname, ' ', author_lname)
from books;

사이에 ' '을 넣어 공백을 넣어주자
그러면

 
이렇게 되는데
 
컬럼이름이....굉장히 지저분하다 그렇다면?
 
전에 배운 컬럼 이름 바꾸는 법을 응용하자

select concat(author_fname, ' ', author_lname) as full_name
from books;

as 는 작성하지않아도 되지만
써주도록 하자

 
 
concat 말고 concat_ws() 라는 함수도 있다
 

concat_ws()
select concat_ws(' ', author_fname, author_lname) as full_name
from books;

 
이 함수는 위의 사이사이에 공백을 넣어주는것과 달리
첫 번째 파라미터가 뒤에 파라미터들이 합쳐질때마다 들어가게 된다
 
만약 합치는게 3개 이상이라면 이 편이 도움이 되겠다

 
 
기존의 모든것을 보여주면서 지금 만든 이것을 함께 보여주고자 할때는

select *, concat_ws(' ', author_fname, author_lname) as full_name
from books;

이런식으로 * 모든것을 보여주고 , 컴마로 추가하면 되겠다