如何从mysql数据库导出表到excel?

时间:2014-03-05 23:31:17

标签: php mysql excel phpmyadmin export

我在mysql中有一个表,它有超过10万行,我想把它导出到excel。但是,我尝试在phpmyadmin上导出到excel函数,但转储excel文件需要永远。它甚至没有倾销。错误始终是“重置连接”。有没有另外一种方法可以做到这一点??

3 个答案:

答案 0 :(得分:5)

首先,Excel中的100k行听起来像一个可怕的想法,当然它需要一段时间。这需要一段时间才能打开。如果你必须尝试这样做:

SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

这应该会为您提供一个名为/tmp/orders.csv的文件,该文件将在Excel中打开。

答案 1 :(得分:0)

导出缓慢可能是由运行phpmyadmin的服务器造成的。我经常以惊人的速度出口数百万行。

如果您可以访问数据库服务器的文件系统,这是一种非常快速的转换为.csv的方式,而后者又可以通过Excel打开。

SELECT order_id,product_name,qty
FROM orders
INTO OUTFILE '/tmp/orders.csv'
FIELDS TERMINATED BY ','
ENCLOSED BY '"'
LINES TERMINATED BY '\n'

请参阅:http://www.tech-recipes.com/rx/1475/save-mysql-query-results-into-a-text-or-csv-file/

答案 2 :(得分:0)

之前我使用OUTFILE方法执行此操作:

SELECT
    'First Name',
    'Last Name',
    'Email Address'
UNION
SELECT
    First_Name,
    Last_Name,
    Email
INTO OUTFILE
    '/tmp/data_2012-05-03.csv'
FIELDS TERMINATED BY ',' ENCLOSED BY '"'
FROM
    `data`
WHERE
    Reg_Date >= '2012-05-02 00:00:00' AND
    Reg_Date <= '2012-05-02 23:59:59' AND
    Email_Status = 1;