Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tôi có thể sử dụng một biến để chỉ định OUTFILE trong mysql không

Chỉnh sửa: Lưu dữ liệu (ví dụ:bảng) vào tệp mà không sử dụng biến (chỉ các giá trị không đổi)

-- folder_path could could be like => c:/users/sami
-- choose the directory/folder already available in system
-- and make sure you have access to write the file there

SELECT * INTO OUTFILE 'folder_path/filename.csv'
FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '"'
FROM database.tableName;

Bây giờ đang sử dụng biến

Bất cứ khi nào bạn phải sử dụng tên biến trong sql, bạn cần sql động (chỉ áp dụng trong các thủ tục được lưu trữ, không áp dụng trong truy vấn sql đơn giản cũng như trong trình kích hoạt hoặc hàm)

SET @OutputPath := 'Users/jo/Documents'; //or any folder_path
SET @fullOutputPath := CONCAT(@OutputPath,'/','filename.csv');
SET @fullOutputPath2 := CONCAT(@OutputPath,'/','filename2.csv');

set @q1 := concat("SELECT * INTO OUTFILE ",@fullOutputPath,
" FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"'
FROM database.tableName");

set @q2 := concat("SELECT * INTO OUTFILE ",@fullOutputPath2,
" FIELDS TERMINATED BY ',' 
OPTIONALLY ENCLOSED BY '\"'
FROM database.tableName2");

prepare s1 from @q1;
execute s1;deallocate prepare s1;

prepare s1 from @q2;
execute s1;deallocate prepare s1;

Như bạn đã có cả hai '" trong truy vấn của bạn rồi, vì vậy tôi đã nối truy vấn của bạn bằng cách sử dụng " và được sử dụng \ để thoát khỏi " ban đầu của bạn để đảm bảo nó được sử dụng như một ký tự chữ và không được sử dụng để nối

Tôi vừa nói về việc sử dụng variable trong sql. Trước tiên, bạn nên đảm bảo rằng truy vấn của bạn có hoạt động như ví dụ ở trên cùng (không sử dụng biến)

Kết luận: Nếu truy vấn ở trên của bạn hoạt động tốt thì sql động đã nói của tôi sẽ hoạt động tốt với điều kiện là bạn đang sử dụng nó trong một số quy trình được lưu trữ.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có bất kỳ mức tăng hiệu suất nào trong việc lập chỉ mục một trường boolean không?

  2. PHP không thấy tiện ích mở rộng mysql

  3. Cách cập nhật cột có giá trị null

  4. Không thể cài đặt gem mysql2 trên macOS Sierra

  5. Cách chạy hoặc tải các tệp .po / .mo để bản địa hóa trong php