De Speichern von MySQL-Abfrageergebnissen in einer Text- oder CSV-Datei :
SELECT order_id,product_name,qty
FROM orders
WHERE foo = 'bar'
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n';
Hinweis: Diese Syntax muss möglicherweise neu geordnet werden, um
SELECT order_id,product_name,qty
INTO OUTFILE '/var/lib/mysql-files/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'
FROM orders
WHERE foo = 'bar';
in neueren Versionen von MySQL.
Bei Verwendung dieses Befehls werden die Spaltennamen nicht exportiert.
Beachten Sie auch, dass /var/lib/mysql-files/orders.csv
wird in der Server auf dem MySQL läuft. Der Benutzer, unter dem der MySQL-Prozess läuft, muss Schreibrechte für das ausgewählte Verzeichnis haben, sonst schlägt der Befehl fehl.
Wenn Sie die Ausgabe eines entfernten Servers (insbesondere eines gehosteten oder virtualisierten Rechners wie Heroku o Amazon RDS ), ist diese Lösung nicht geeignet.
1 Stimmen
Sie können verwenden
REPLACE()
in Ihrer Abfrage, um die Anführungszeichen auszulassen.0 Stimmen
Sehen Sie sich meine Antwort in [diesem Stackoverflow][1] [1] an: stackoverflow.com/questions/12242772/
0 Stimmen
Sie können Tabellendaten als Texttabelle formatieren .
4 Stimmen
Die akzeptierte Antwort auf diese Stackoverflow-Frage ist wahrscheinlich der beste Weg: stackoverflow.com/questions/3760631/mysql-delimiter-question
0 Stimmen
Ich habe eine Anfrage für eine neue Funktion im MariaDB Bug Tracker ( jira.mariadb.org/browse/MDEV-12879 ) Sie können darüber abstimmen.
0 Stimmen
stackoverflow.com/questions/1119312/
0 Stimmen
Kopiert aus einer unten gelöschten Antwort:
SELECT @@GLOBAL.secure_file_priv;
wird Ihnen den Weg zeigen, zu dem Sie Zugang haben. Ich hatte keinen Schreibzugriff auf/tmp/
aber ich habe/var/lib/mysql-files/
.0 Stimmen
Mögliche Antwort, wenn Sie keinen Schreibzugriff auf den Server haben: 1) Verwenden Sie mysqldump, um die Tabelle zu dumpen. 2) Importieren Sie die Tabelle in Ihre lokale Datenbank. 3) Verwenden Sie die akzeptierte Antwort zum Exportieren (
select ... into outfile
) in CSV.0 Stimmen
Ich nehme an, Sie meinen ohne Programmiercode, richtig?