Du kan spara ett frågeresultat i en .CSV-fil genom att använda SELECT ... INTO OUTFILE
uttalande.
Du anger namnet/platsen för filen samt andra alternativ, såsom fältavslutare, linjeavslutare, etc.
Här är ett grundläggande exempel.
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv';
Detta väljer alla kolumner från Kunder tabell och placerar dem i en .CSV-fil som heter customers.csv i /tmp katalog.
Tillval
Du kan ange hur fält och rader ska avslutas genom att använda FIELDS TERMINATED
och LINES TERMINATED
klausuler.
Du kan också ange tecknen som ska omsluta varje värde genom att använda ENCLOSED BY
klausul.
Och du kan använda FIELDS ESCAPED BY
sats för att styra hur man skriver specialtecken.
Här är frågan igen, den här gången med några av dessa extra satser:
SELECT * FROM Customers INTO OUTFILE '/tmp/customers.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Lägga till rubriker
De tidigare exemplen kommer att generera en .CSV-fil med resultaten av frågan, men inte med kolumnnamnen. Det betyder att .CSV-filen inte kommer att ha rubriker på första raden.
För att inkludera kolumnnamnen (så att .CSV-filen innehåller rubriker på första raden), kan du hårdkoda dem i en annan SELECT
sats, föregås av resten av frågan av en UNION ALL
operatör.
Här är ett exempel på en annan (något mer komplex) fråga. I det här exemplet lägger vi till kolumnrubriker i .CSV-filen:
/* Add column headers */ SELECT 'OrderId','CustomerID','EmployeeID','OrderDate','RequiredDate','ShippedDate','ShipVia','Freight','ShipName','ShipAddress','ShipCity','ShipRegion','ShipPostalCode','ShipCountry','OrderID','ProductId','UnitPrice','Quantity','Discount' UNION ALL /* Now the actual query */ SELECT o.OrderId, o.CustomerID, o.EmployeeID, o.OrderDate, o.RequiredDate, o.ShippedDate, o.ShipVia, o.Freight, o.ShipName, o.ShipAddress, o.ShipCity, o.ShipRegion, o.ShipPostalCode, o.ShipCountry, od.OrderID, od.ProductId, od.UnitPrice, od.Quantity, od.Discount FROM `Orders` o LEFT JOIN `Order Details` od ON od.OrderID = o.OrderID /* Save the query results to a file */ INTO OUTFILE '/tmp/orders.csv' FIELDS TERMINATED BY ',' ENCLOSED BY '"' LINES TERMINATED BY '\n';
Använda MySQL Workbench GUI
Du kan också använda MySQL Workbench GUI för att exportera resultaten av en fråga.