MySQL에서의 문자열 연결


149

MySQL과 MySQL Workbench 5.2 CE를 사용하고 있습니다. 언제 2 열을 연결하려고 last_name하고 first_name그것은 작동하지 않습니다 :

select first_name + last_name as "Name" from test.student

21
이 질문은 연구 노력이 전혀 없다는 것을 보여줍니다. 다음에 질문하기 전에 Google에 문의하십시오.
Mathias Lykkegaard Lorenzen

5
나는 연구 노력에 신경 쓰지 않는다. 이 유형의 질문에 대해 stackoverflow가 Google에서 가장 큰 인기를 얻었으며, 이것은 크라우드 소싱 답변의 장소입니다. :)
hamish

답변:


271

MySQL은 대부분의 DBMS에서 사용 +하거나 ||연결 하는 것과 다릅니다 . 그것은 CONCAT기능을 사용합니다 :

SELECT CONCAT(first_name, " ", last_name) AS Name FROM test.student

@eggyal이 주석에서 지적했듯이 SQL 모드 ||를 설정하여 MySQL 에서 연산자 와 문자열 연결을 활성화 할 수 있습니다 PIPES_AS_CONCAT.


7
더 나은 대답은 MySQL이 연결 연산자를 사용하지 않는다는 것입니다.
DonBecker

28
이되지 않습니다주의 완전히 MySQL은 : 진정한 수행 지원을 ||때, 문자열 연결을위한 PIPES_AS_CONCATSQL 모드가 활성화됩니다.
eggyal

1
를 사용하는 사람들의 Doctrine경우 공백으로 작은 따옴표를 사용 CONCAT하고 전체 쿼리 주위에 큰 따옴표 를 사용해야했습니다 .
크레인

3
설정하려면 PIPES_AS_CONCAT: SET @@SQL_MODE = CONCAT(@@SQL_MODE, ',PIPES_AS_CONCAT');. 설정을 해제하려면 : SET @@SQL_MODE = REPLACE(@@SQL_MODE, 'PIPES_AS_CONCAT', '');. mariadb.com/kb/en/library/sql-mode/#examples
mivk

27

시험:

select concat(first_name,last_name) as "Name" from test.student

또는 더 나은 :

select concat(first_name," ",last_name) as "Name" from test.student

8

다음 과 같이 대신 concat () 함수를 사용하십시오 +.

select concat(firstname, lastname) as "Name" from test.student

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.