database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 23941 게시물 읽기
No. 23941
1개의 컬럼을 여러개로 분리하고자 합니다.
작성자
김형구
작성일
2005-06-20 16:48ⓒ
2005-06-20 16:52ⓜ
조회수
2,425

원래의 텍스트 파일을 load data infile 했습니다만,

그 텍스트 파일 내용을 컬럼으로 분리할 구분자가 2개 있습니다.

 

텍스트 파일 내용을 예로 들면...

 

A, B, C, D, E, F / G / H, I, J, K, L .....

 

이런 식입니다. (위의 쉼표와 / 를 구분자로 모든 알파벳을 한 개의 컬럼으로 쓰고자 합니다.)

 

우선 쉼표를 구분자로 한 번 load data 한 후에

 

select 컬럼a, ....., replace(대상컬럼, ' / ', ','),... into out .. fields terminaed by ','

 

이런식으로 해서 일단 모두 쉼표로 구분된 텍스트 파일을 얻었습니다만,

이 텍스트 파일을 최종적으로 원하는 테이블에 로드해서 넣은 결과는 제가 원하는

대로 되지 않습니다. (컬럼이 잘리지 않는군요.)

 

문제는 outfile로 생성된 텍스트 파일의 내용 안에

 

replace(대상컬럼, ' / ', ',') 로 치환된 쉼표는 그냥 쉼표로 치환되지 않고

\, (역슬래쉬 쉼표)로 치환되어 있더군요.

그 결과 최종 테이블에 입력해도 \, 가 구분자로 인식되지 않는것 같습니다.

 

즉, 텍스트 파일의 내용이 아래와 같이 되어버립니다.

A, B, C, D, E, F \, G \, H, I, J, K, L .....

 

MySQL은 윈도(nt) 버전인데, 이것과 관계가 있는건지...

이런 경우엔 어떻게 해야 하는지요?

이 글에 대한 댓글이 총 3건 있습니다.

field terminated by ',' 를 하면 필드를 ',' 로 구분하겠다는 것이죠..

필드속에 있는 ',' 는 당연히 이스케이프 되어 나오겠죠...

output 된 파일을 수정해주면 되겠네요.. 

간단한 텍스트 에디터에서 '\,' 를 ',' 로 바꿔주면 되겠죠..

이경환(babocom)님이 2005-06-20 16:53에 작성한 댓글입니다.

빠른 답변에 감사드립니다.. ^^

 

근데.. 사실 PHP 코드 중에 필요한 SQL문이거든요.

 

수동으로 수정할 수는 없구요..

 

PHP로 루프를 돌리면서 치환하는 것도 생각은 해봤는데

시간이 많이 걸리는 것으로 알고 있어서...

 

MySQL 기능만으로 해결되지 않을까 해서요...

김형구님이 2005-06-20 16:57에 작성한 댓글입니다. Edit

이스케이프를 하지 않으면 되겠죠...  '' 로 이스케이프 하거나..

근데 그럼 다른 컬럼들에서 문제가 생길수도...

이경환(babocom)님이 2005-06-20 17:08에 작성한 댓글입니다.
[Top]
No.
제목
작성자
작성일
조회
23944[TIP] 최근 페도라에 MYSQL 설치시 주의
신인식
2005-06-21
2061
23943mysql 소스설치시... [1]
궁금이
2005-06-20
1411
23942세그멘테이션 오류
sentive
2005-06-20
1790
239411개의 컬럼을 여러개로 분리하고자 합니다. [3]
김형구
2005-06-20
2425
23940MySQL 쿼리문 질문입니다. [8]
나그네
2005-06-20
1653
23938mysql에서 회원정보를 수정하고싶은데요... [1]
초짜생
2005-06-20
1551
23937프로그램이 다운되는 문제
charlie
2005-06-19
1119
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.017초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다