【问题标题】:Generate CSV based on MySQL query from phpMyAdmin根据来自 phpMyAdmin 的 MySQL 查询生成 CSV
【发布时间】:2023-03-24 04:54:01
【问题描述】:

我可以根据 MySQL 查询从 phpMyAdmin 生成 CSV 文件吗?

例如,假设我查询了一个表以返回单词“image”的结果。然后我可以生成一个包含所有包含单词“图像”的记录的 CSV 吗?

【问题讨论】:

标签: mysql csv phpmyadmin


【解决方案1】:

在 PhpMyAdmin 中,进入 SQL 选项卡并在其中输入您的查询。点击 go,然后点击结果底部的 Export。您可以选择导出为 CSV。

如果您有兴趣,可以通过以下方式在没有 PMA 的情况下通过 SQL 进行操作:How to output MySQL query results in CSV format?

【讨论】:

  • id 不适用于大量数据,当我单击导出时:未选择任何记录。我无法选择 20k 记录,因为 Firefox 崩溃(内存不足)
  • @user3871754 和其他遇到此问题的人,在结果下方有 2 个导出按钮,一个用于导出所选行,另一个在下面的第二个栏中,用于导出所有内容。它在“打印”和“复制到剪贴板”旁边。
  • 要添加到@MarcoMartinelli 的有用评论,您需要的“导出”链接位于标有“查询结果操作”的框中。 (结果页面上至少还有两个其他“导出”链接会调用其他行为,因此找到正确的链接很重要。)如果您仍在查找,此答案有一个有用的屏幕截图:serverfault.com/a/300342/481427
【解决方案2】:

您也许可以使用SELECT ... INTO OUTFILE... 功能。虽然这会将 CSV 文件放在服务器上。这是一个很长的页面,因为它是整个“选择”语法的页面,但基础知识如下:

SELECT col1,col2,col3 INTO OUTFILE '/tmp/result.txt'
  FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
  LINES TERMINATED BY '\n'
  FROM MyTable;

【讨论】:

  • 这通常由于安全漏洞而被禁用。
【解决方案3】:
create table tmp_export
SELECT * from table_name WHERE column_name .....

它创建了一个表,然后我将该表导出为 CSV。这个解决方案对我来说很好。

【讨论】:

  • 我想这个解决方案肯定会奏效,但在我看来,只创建一个临时表并不是一个好习惯。
【解决方案4】:

同样有效的是使用查询创建一个表,然后像往常一样导出该表,让 phpmyadmin 导出的所有选项都可用。只需在 phpmyadmin 的 SQL 框中执行类似的操作

create table tmp_export
select * from xxxx

使用这种方法处理复杂查询和大型数据集没有问题。

【讨论】:

    【解决方案5】:

    使用管理员,管理员可以选择导出查询结果: https://www.adminer.org/

    【讨论】:

      猜你喜欢
      • 2011-11-16
      • 2012-05-23
      • 2015-09-05
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 2016-05-19
      • 2017-02-02
      • 2020-02-14
      相关资源
      最近更新 更多