Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách xuất dữ liệu cột cụ thể trong MySQL?

Sử dụng mệnh đề INTO OUTFILE để xuất kết quả truy vấn ra file văn bản trên server.

Tạo bảng

mysql> CREATE TABLE DemoTable (
    -> StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
    -> StudentFirstName VARCHAR(20),
    -> StudentLastName VARCHAR(20)
    -> );

Chèn dữ liệu

mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('John', 'Doe');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('David', 'Miller');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('John', 'Smith');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('Carol', 'Taylor');
mysql> INSERT INTO DemoTable(StudentFirstName, StudentLastName) VALUES('Sam', 'Williams');

Xuất cột StudentLastName ra file

mysql> SELECT StudentLastName FROM DemoTable INTO OUTFILE 'E:/StudentLastName.txt';
Query OK, 5 rows affected (0.00 sec)

Định dạng file mặc định

  • Tab-separated values (TSV)
  • Newline-terminated lines
  • NULL hiển thị là \N
  • Không có header cột

Tùy chỉnh định dạng xuất

SELECT StudentLastName 
FROM DemoTable 
INTO OUTFILE 'E:/StudentLastName.csv'
FIELDS TERMINATED BY ',' 
ENCLOSED BY '"' 
LINES TERMINATED BY '\r\n';

Yêu cầu và lưu ý

  • Cần quyền FILE privilege
  • File được tạo trên server, không phải client
  • File không được tồn tại trước (sẽ báo lỗi)
  • Đường dẫn phải accessible bởi MySQL server process
  • secure_file_priv giới hạn thư mục cho phép (check: SHOW VARIABLES LIKE 'secure_file_priv';)

Phương án thay thế (client-side)

# Command line
mysql -u user -p -e "SELECT StudentLastName FROM DemoTable" dbname > output.txt

# MySQL Workbench / DBeaver: Export → CSV/JSON/Excel