Mysql
 sql >> Baza danych >  >> RDS >> Mysql

czy mogę użyć zmiennej do określenia OUTFILE w mysql

Edytuj: Zapisywanie danych (np. tabeli) do pliku bez użycia zmiennej (tylko wartości stałe)

-- 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;

Teraz używam zmiennej

Ilekroć musisz użyć nazwy zmiennej w sql, potrzebujesz dynamicznego sql (który ma zastosowanie tylko w procedurach składowanych, ani w prostych zapytaniach sql, ani w wyzwalaczach lub funkcjach)

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;

Ponieważ miałeś oba ' i " już w zapytaniu, więc połączyłem je za pomocą " i użył \ do zmiany oryginalnego " aby upewnić się, że jest używany jako znak dosłowny i nie jest używany do łączenia

Właśnie powiedziałem o użyciu variable w kw. Najpierw upewnij się, że Twoje zapytanie działa jak przykład na górze (bez używania zmiennej)

Wniosek: Jeśli powyższe zapytanie działa dobrze, to mój powiedziany dynamiczny sql będzie działał równie dobrze, biorąc pod uwagę, że używasz go w jakiejś procedurze składowanej.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Wybierz tylko wiersze z wartością minimalną w kolumnie z warunkiem WHERE

  2. Uruchomienie MySQL na OSX 10.7 Lion

  3. zrobić ID w tabeli mysql auto_increment (po fakcie)

  4. Problem z instalacją Ruby on Rails - Jak korzystać z instalacji WAMP MySQL?

  5. Czy Load DATA bez pliku (tj. w pamięci) jest możliwe dla MySQL i Java?