2017-10-19 6 views
0

작동하지 않습니다 ... 내가 사용 쿼리MYSQL 표를 CSV로 내 보냅니다. 쿼리 내가 CSV 파일로 테이블의 일부 필드를 수출하기 위해 노력하고있어

SELECT "field1", "field1", "field3" 
UNION ALL 
SELECT * 
FROM mytable 
INTO OUTFILE "/Users/davide/Documents/file.csv" 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 

입니다 그러나 MySQL은

ERROR 1222 (21000): The used SELECT statements have a different number of columns 
을 반환

테이블에 2 개의 필드가 더 있습니다. 그러나 이것이 문제라고 생각하지 않습니다.

감사

+0

두 개의 필드가 추가로 필요합니다. CSV에있는 동일한 수의 열이 가져 오는 표와 일치해야합니다. – Adam

+0

테이블에 5 개의 열이 있지만 UNION에 3 개의 열이있는 쿼리를 사용하면 문제가 발생하지 않는 이유는 무엇입니까? UNION 및 모든 SQL 구현의 표준 정의에서 오류입니다. 문자 그대로 오류 메시지가 말하는 것입니다. –

답변

0

문제는 당신이 UNION 문을 사용할 때, 당신은 당신이 "빈"공간을 채우기 위해 필요한 경우 모두 SELECT의 문을 열

를 같은 번호가 있는지 확인해야한다는 것입니다, 당신 SELECT *를 사용하지 마십시오 예를

SELECT "field1", "field1", "field3", NULL, NULL 
UNION ALL 
SELECT * 
FROM mytable 
INTO OUTFILE "/Users/davide/Documents/file.csv" 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
+0

쿼리가 작동하지만 모든 필드가 CSV로만 선택됩니다. – big

+0

두 번째 선택에는'*'이 있으므로 모두 선택하므로 출력을 원하는대로 지정해야합니다. 견본 입력과 함께 – Moseleyi

2

를 들어, NULL을 사용할 수 있습니다, 당신은 CSV에 투입 할 특정 컬럼을 나열합니다. SELECT *은 테이블의 모든 열을 반환하는 것을 의미합니다.

SELECT "field1", "field1", "field3" 
UNION ALL 
SELECT field1, field2, field3 
FROM mytable 
INTO OUTFILE "/Users/davide/Documents/file.csv" 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n'