2008-12-12 11 views

Odpowiedz

21
SELECT A,B,C 
FROM X 
INTO OUTFILE 'file name'; 

Trzeba przywilej plik, aby to zrobić, i nie będzie nadpisać pliki.

INTO OUTFILE ma kilka opcji do niego, jak również, takich jak FIELDS ENCLOSED BY, FIELDS ESCAPED BY, itp ... że może chcesz look up in the manual.

Aby wyprodukować plik CSV, by zrobić coś takiego:

SELECT A,B,C 
INTO OUTFILE '/tmp/result.txt' 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n' 
FROM X; 

Aby wczytać dane z powrotem z pliku, należy użyć komendy LOAD DATA INFILE z tymi samymi opcjami stosowanych zrzucić go. Dla formatu CSV powyżej, byłoby

LOAD DATA INFILE '/tmp/result.txt' 
INTO TABLE X 
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
LINES TERMINATED BY '\n'; 
1

Spróbuj:

SELECT col1, col2 
    INTO OUTFILE '/filepath/export.txt' 
    FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' 
    LINES TERMINATED BY '\n' 
FROM table; 
5

OUTFILE nie przynosi Ci zrzut SQL, ani mysqldump może działać na podzbiór kolumn. Ale możesz create table temp_weeeee select ...., eksportować i upuszczać.

4

Shell poleceń

echo 'select field from db.table;' | mysql -u user -p password > output.txt 
+1

Idealnie! Oczywiście działa również z wieloma polami: echo 'select column1, column2, column3 from database.table;' | mysql -u użytkownik -phasło> output.txt –

+0

Dzięki za polecenie powłoki! Obejmuje to również nazwę pola w danych wyjściowych. Czy jest jakikolwiek sposób, aby go anulować? – axil

+1

@axil Użyj opcji '-N, --skip-column-names'. –

7

Jeśli używasz phpMyAdmin,

uruchomić kwerendę

SELECT A, B, C X

i istnieje opcja eksportu w dolnej części wyniku.

+0

To zdecydowanie jest najłatwiejsze rozwiązanie. Dzięki!!! –

Powiązane problemy