2008-12-12 51 views

Trả lời

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

Bạn cần đặc quyền FILE để làm điều này, và nó sẽ không ghi đè lên tập tin.

INTO OUTFILE cũng có một số tùy chọn cho nó, chẳng hạn như FIELDS ENCLOSED BY, FIELDS ESCAPED BY, v.v ... mà bạn có thể muốn look up in the manual.

Để tạo ra một tập tin CSV, bạn sẽ làm điều gì đó như:

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

Để tải các dữ liệu trở lại từ các tập tin, sử dụng lệnh LOAD DATA INFILE với các tùy chọn mà bạn đã dùng để đổ nó ra. Đối với định dạng CSV trên, đó sẽ là

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

Hãy thử:

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

OUTFILE không sản xuất bạn một bãi chứa SQL, không mysqldump thể hoạt động trên tập hợp con của các cột. Nhưng bạn có thể create table temp_weeeee select ...., xuất và thả.

4

Shell lệnh

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

Hoàn hảo! Rõ ràng nó hoạt động với nhiều trường cũng: echo 'select column1, column2, column3 from database.table;' | mysql -u user -ppassword> output.txt –

+0

Cảm ơn lệnh shell! Điều này cũng bao gồm tên trường trong đầu ra. Có cách nào nó có thể được ommited? – axil

+1

@axil Sử dụng tùy chọn '-N, --skip-column-names'. –

7

Nếu bạn đang sử dụng phpMyAdmin,

Chạy truy vấn

CHỌN A, B, C TỪ X

và có một tùy chọn xuất ở cuối kết quả.

+0

Đó chắc chắn là giải pháp dễ nhất. Cảm ơn người đàn ông !!! –

Các vấn đề liên quan