簡體   English   中英

如何將整個數據庫MYSQL導出到CSV文件?

[英]How can I export into an CSV file a whole database MYSQL?

我有一個名為demo_db的數據庫, 其中包含以下表格:

user
  Id
  Name

history
  Id
  userId
  report

start_test
  Id
  userId
  score

final_test
  Id
  userId
  score

如何在MySQL中使用INTO OUTFILE將所有表導出為CSV文件? 所以我可以擁有列名和數據下方,我希望能夠添加過濾器,如果有可能的方法將每個表添加到同一文件中的新選項卡....或者我可以只顯示所有每個用戶的單行數據??

我不能做類似的事情:SELECT用戶。 ,歷史。 ,start_test。*,final_test。* INTO OUTFILE FROM user,history,start_test,final_test

我用mysqldump做了它,但它沒有按我想要的方式呈現數據。

我是用PHP做的。

沒有命令直接執行此操作,您需要模擬mysqldump的行為並以您希望的方式輸出CSV。

$FILE = fopen("output.csv", "w");
mysql_connect($server, $login, $password);
$res = mysql_query("SHOW TABLES FROM $db");
$tables = array();
while($row = mysql_fetch_array($res, MYSQL_NUM)) {
    $tables[] = "$row[0]";
}
foreach($tables as $table) {
    $columns = array();
    $res = mysql_query("SHOW COLUMNS FROM $table");
    while($row = mysql_fetch_array($res, MYSQL_NUM)) {
        $columns[] = "$row[0]";
    }
    fwrite($FILE, implode(",", $columns); fwrite("\n");
    $resTable = mysql_query("SELECT * FROM $table");
    while($row = mysql_fetch_array($resTable, MYSQL_NUM)) {
        fwrite($FILE, implode(",", $row)); fwrite("\n");
    }
}

MYSQL_NUM用於為您提供數字索引數組。

如果您不想輸出到文件,而是直接從網站下載到您的計算機,請將以下行添加到腳本的開頭:

header('Content-Type: text/csv; name="filename.csv"');
header('Content-Disposition: attachment; filename="filename.csv"');

將fwrites更改為echo或print。

哦,我在輸出中添加了一些新行,因為我相信你不會想要一個很長的行。

如果您使用的是phpmyadmin

然后轉到導出 - >單擊自定義 - display all possible options

您將在下面找到復選框: Put columns names in the first row 檢查是否在第一行和下面獲取列名稱,您將獲得數據。

CREATE VIEW MY_VIEW
AS
SELECT user.*, history.*, start_test.*, final_test.*
FROM
user, history, start_test, final_test
WHERE user.id = history.userId
AND user.id = start.userId
AND user.id = final.userId

轉儲視圖的內容使用phpmyadmin中的導出工具

此片段取自http://dev.mysql.com/doc/refman/5.6/en/select-into.html

SELECT a,b,a+b INTO OUTFILE '/tmp/result.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM test_table;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM