Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 큰따옴표가 포함된 레코드를 삽입하는 방법 (백슬래시 이스케이프 활용)

개요

MySQL에서 데이터를 삽입할 때 값에 큰따옴표(")를 포함하려면, 해당 문자가 SQL 구문 오류로 잘못 해석되지 않도록 백슬래시(\)로 이스케이프 처리해야 합니다. 아래 구문을 참고하세요.

구문

insert into yourTableName values('\"yourValue\"');

이제 실제 예제를 통해 단계별로 살펴보겠습니다.

1단계: 테이블 생성

먼저 데모용 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> Name varchar(20)
-> );
Query OK, 0 rows affected (0.63 sec)

2단계: 큰따옴표가 포함된 레코드 삽입

insert 명령어를 사용하고, 값의 앞뒤 큰따옴표 앞에 백슬래시(\)를 붙여 이스케이프 처리합니다.

mysql> insert into DemoTable values('\"John\"');
Query OK, 1 row affected (0.17 sec)
mysql> insert into DemoTable values('\"Chris\"');
Query OK, 1 row affected (0.11 sec)
mysql> insert into DemoTable values('\"Adam Smith\"');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable values('\"Carol\"');
Query OK, 1 row affected (0.20 sec)

3단계: 결과 확인

select 문을 사용하여 테이블의 전체 레코드를 조회합니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다. 각 값 앞뒤에 붙은 큰따옴표가 정상적으로 저장된 것을 쉽게 확인할 수 있습니다.

+--------------+
| Name |
+--------------+
| "John" |
| "Chris" |
| "Adam Smith" |
| "Carol" |
+--------------+
4 rows in set (0.00 sec)

참고: 다른 이스케이프 방법들

  • 작은따옴표 구분자 활용: 문자열을 작은따옴표로 감싸면 내부의 큰따옴표는 충돌하지 않으므로, 환경에 따라 이스케이프 없이도 저장할 수 있습니다. 다만 SQL 모드(예: ANSI_QUOTES)에 따라 동작이 달라질 수 있습니다.
  • NO_BACKSLASH_ESCAPES 모드: 서버 설정에서 이 모드를 활성화하면 백슬래시가 일반 문자로 취급되어, 이스케이프 처리 방식 자체가 변경됩니다. 운영 환경의 sql_mode 설정을 항상 확인하는 것이 좋습니다.

결론적으로, 큰따옴표가 포함된 값을 안전하게 삽입하는 가장 확실한 방법은 백슬래시(\)로 이스케이프 처리하는 것입니다. 이를 통해 SQL 구문 오류 없이 원본 형태 그대로 데이터를 저장할 수 있습니다.