Computer >> 컴퓨터 >  >> 프로그램 작성 >> MySQL

텍스트 파일에서 MySQL 테이블로 데이터를 가져오는 동안 텍스트 파일에서 이스케이프 문자(\)를 사용하는 것은 무엇입니까?

<시간/>

파일의 값 사이에 쉼표나 다른 문자를 삽입하려는 경우 이스케이프 문자(\)를 사용하는 것이 매우 중요합니다. 예제를 통해 이해할 수 있습니다. 다음 데이터를 포함하는 A.txt라는 텍스트 파일에서 MySQL 테이블로 데이터를 가져오기를 원한다고 가정해 보겠습니다. -

id, 이름, 국가, Salary105, Chum, Marsh, USA, 11000106, Danny, Harrison, AUS, 12000

여기에서 파일 이름에 쉼표로 구분된 이름과 성의 두 값이 있음을 알 수 있습니다. 이제 다음 쿼리는 위의 텍스트 파일 'A.txt'에서 'employee4_tbl'로 데이터를 가져옵니다 -

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO 테이블 employee4_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS;쿼리 OK, 영향을 받는 2개, 경고 4개(0.05초) 레코드:2 삭제됨:0 건너뜀 :0 경고:4

'A.txt'에서 테이블로 데이터를 가져올 때 4개의 경고가 있음을 알 수 있습니다. 다음 쿼리는 테이블에 삽입된 내용을 보여줍니다 -

mysql> 선택 * from employee4_tbl;+------+---------+---------+--------+| 아이디 | 이름 | 국가 | 급여 |+------+---------+----------+--------+| 105 | 춤 | 습지 | 0 || 106 | 대니 | 해리슨 | 0 |+------+---------+----------+--------+2행 세트(0.00초) 

위의 결과 집합은 MySQL이 필드 'name'의 값인 'lastname'을 필드 'Country'의 값으로 예측하는 것을 보여줍니다.

위의 문제는 다음과 같이 텍스트 파일에 이스케이프 문자를 넣어 제거할 수 있습니다. -

id, 이름, 국가, Salary105, Chum\, Marsh, USA, 11000106, Danny\, Harrison, AUS, 12000

이제 다음 쿼리를 사용하여 이 텍스트 파일을 MySQL 테이블로 가져옵니다. -

mysql> LOAD DATA LOCAL INFILE 'd:\A.txt' INTO table employee5_tbl FIELDS TERMINATED BY ',' IGNORE 1 ROWS;Query OK, 영향을 받은 2개 행(0.03초) 레코드:2 삭제됨:0 건너뛰기:0 경고 :0

위의 쿼리에서 이전과 같이 경고가 없음을 알 수 있습니다. 이제 다음 쿼리를 통해 가져온 항목을 확인할 수 있습니다.

mysql> * from employee5_tbl;+------+----------------+------------+---- 선택 -+| 아이디 | 이름 | 국가 | 급여 |+------+----------------+----------+--------+| 105 | Chum, 습지 | 미국 | 11000 || 106 | 대니, 해리슨 | 호주 | 12000 |+------+----------------+----------+--------+2행 설정(0.00초)