MySQL CONCAT()에서 백틱 사용 시 발생하는 오류와 해결 방법
MySQL의 CONCAT() 함수 내부에 백틱(`)을 사용하면 오류가 발생합니다. 백틱은 테이블명이나 컬럼명 같은 식별자를 감쌀 때 사용하는 기호이기 때문입니다. 따라서 문자열을 연결할 때는 반드시 작은따옴표(')를 사용해야 합니다. 기본 문법은 다음과 같습니다.
select concat(yourColumnName1,' ',yourColumnName2) from yourTableName;
1단계: 테이블 생성
먼저 예제로 사용할 테이블을 생성합니다.
mysql> create table DemoTable1359
-> (
-> Id int,
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.58 sec)
2단계: 레코드 삽입
insert 명령어를 사용하여 테이블에 데이터를 입력합니다.
mysql> insert into DemoTable1359 values(101,'Chris');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1359 values(102,'Adam');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable1359 values(103,'Mike');
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable1359 values(104,'John');
Query OK, 1 row affected (0.20 sec)
3단계: 전체 레코드 조회
select 문으로 테이블의 모든 레코드를 확인합니다.
mysql> select * from DemoTable1359;
실행 결과는 다음과 같습니다.
+------+-------+
| Id | Name |
+------+-------+
| 101 | Chris |
| 102 | Adam |
| 103 | Mike |
| 104 | John |
+------+-------+
4 rows in set (0.00 sec)
4단계: CONCAT()에서 작은따옴표 사용하기
다음은 CONCAT() 함수에서 작은따옴표를 사용하여 두 컬럼을 하나의 문자열로 연결하는 쿼리입니다.
mysql> select concat(Id,' ',Name) from DemoTable1359;
실행 결과는 다음과 같습니다.
+---------------------+
| concat(Id,' ',Name) |
+---------------------+
| 101 Chris |
| 102 Adam |
| 103 Mike |
| 104 John |
+---------------------+
4 rows in set (0.00 sec)
위 예시처럼 CONCAT() 함수 안에서 공백과 같은 문자열 구분자를 넣을 때는 반드시 작은따옴표를 사용해야 합니다. 백틱을 사용하면 MySQL이 이를 일반 문자열이 아닌 식별자(컬럼명)로 해석하기 때문에 오류가 발생하게 됩니다.