【问题标题】:MYSQL command line SELECT INTO OUTFILE, LOAD DATA INFILE ... INTO TABLE to CSV with html data in columnMYSQL 命令行 SELECT INTO OUTFILE, LOAD DATA INFILE ... INTO TABLE 到 CSV,列中有 html 数据
【发布时间】:2020-02-17 18:34:08
【问题描述】:

当我使用SELECT INTO FILE 命令对CSV 使用CSV 时,我的列是WYSIWYG,当我用excel 打开数据时,数据变得混乱,到处都是bc 中的数据列等等on,我也不能使用LOAD DATA INFILE 命令。

如果我删除所有 html 它可以工作,但我需要 html!

以前有人做过,我该如何实现?

通过此处找到的示例:https://dev.mysql.com/doc/refman/8.0/en/select-into.html

SELECT  'id', 'title', 'driving', 'transit', 'parking', 'summary', 
'description', 'is_active' UNION ALL SELECT title, driving, transit, 
parking, summary, description, status FROM MY_TABLE INTO OUTFILE 
'/var/lib/mysql-files/my_table.csv' FIELDS TERMINATED BY ',' OPTIONALLY 
ENCLOSED BY '"' LINES TERMINATED BY '\n';

来自my_table.csv的截图数据

您可以看到 id column 1 然后下面是属于驾驶、公交、停车或摘要之一的数据。然后 id 2 在我认为问题出在所见即所得列中的新行之后,当我导出到 CSV 时,我需要将它们保留在正确的列中。

【问题讨论】:

  • a+b - + 是 mysql 中的算术表达式在这里有意义吗?我不知道,看不到数据 - 你想提供一些吗?
  • @P.Salmon 我已经用更多相关数据和实际查询更新了问题
  • 在文本编辑器中显示 csv 文件的捕获,而不是在 excel 中。或至少与副本/过去相关的部分。以及您的数据样本。显示预期结果。
  • @Eric 我需要的预期结果是id 列只有数字,没有来自其他字段的数据。你知道如何导出到包含 html 的 CSV 列而不会弄乱你会怎么做?举个例子我可以试试?
  • 即使放大 300% 我也无法读取图像。如果您从 my_table 添加示例数据会很有帮助。

标签: mysql export-to-csv wysiwyg


【解决方案1】:

CSV 根本不适合导出 HTML。您的文本字段可能包含一个逗号或双引号,这会移动在它之后读取的所有数据。这不仅仅是显示问题。

您可以尝试将逗号符号替换为 htmlentitie ,避免 CSV 破坏格式。

假设标题和描述是 HTML...

SELECT id,
       replace (title,       ','  , ',' ) as title, 
       replace (description, ','  , ',' ) as description 
FROM your_table

但没有真实数据,很难找到解决问题的方法。

【讨论】:

  • 到目前为止,我的查询 FIELDS 和 LINES 子句如下:FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n' ; 我最好的方法是打开文件并查找并替换,例如:\"eyeCatching\" 然后用 ""eyeCatching""一切都到位了,但是如果您知道如何通过查询完成它,我们欢迎您!
【解决方案2】:

我遇到的问题是 WYSWYG 数据的 html 内容如下:class="class" 和锚标签如下:<a href="anchor-link">anchor text</a> 这是我解决问题的选项。它包括标题:

 SELECT  'id', 'title', 'driving', 'transit', 'parking', 'summary','description','is_active'
 UNION ALL SELECT id, title, driving, transit, parking, summary, description, status 
 FROM my_table INTO OUTFILE '/var/lib/mysql-files/data.csv' 
 FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' ESCAPED BY '\\' LINES TERMINATED BY '\r\n';

使用上面的查询,它将在 html 类中的 "<a> 标记之前添加 \

使用您选择的编辑器打开文件并将\" 替换为""

一切都准备就绪!

【讨论】:

    猜你喜欢
    • 2019-09-25
    • 2023-04-05
    • 2011-02-21
    • 2023-03-24
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 2011-08-10
    • 2012-02-26
    相关资源
    最近更新 更多