【问题标题】:MYSQL: How dump resultset into a LONGTEXT variable rather than to a output fileMYSQL:如何将结果集转储到 LONGTEXT 变量而不是输出文件
【发布时间】:2011-01-24 12:06:26
【问题描述】:

我要修改以下代码:

SELECT * INTO OUTFILE 'C:\\my_excel_table.csv'
 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
 LINES TERMINATED BY '\r\n'
 FROM mytable;

以便将结果转储到 longtext/variable 而不是输出文件。

【问题讨论】:

    标签: mysql sql into-outfile


    【解决方案1】:

    不确定是否可以,但有INSERT ... SELECT FROM 语法,可以让您将选择的结果插入到另一个表中。问题是SELECT 将返回行,这些行将被一个接一个地插入到另一个表中,而不是作为一个长文本块进入。

    【讨论】:

    • 这就是我想要克服的。正如您从示例中看到的那样。在写入文件时,它通过连接和使用分隔符来完成
    【解决方案2】:

    使用insert select

    INSERT INTO mytable (my_field) select my_other_field from my_other_table
    

    【讨论】:

    • 我不想插入另一个字段
    • 也许我们可以使用带有分隔符的 group_CONCAT 或其他东西来实现我的目标
    • GROUP_CONCAT 的长度有限制,但默认为 1024 个字符。您可以使用group_concat_max_len 设置覆盖。但是,如果您的 csv 数据“大”,您很可能会耗尽内存,因为 group_concat 完全在内存中完成,并且不会将结果流式传输到插入查询中。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-07
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2013-06-22
    • 1970-01-01
    相关资源
    最近更新 更多