【问题标题】:Mysql Load Inline - Specific ColumnsMysql 加载内联 - 特定列
【发布时间】:2011-08-22 16:15:11
【问题描述】:

从这里提出的问题中寻找更多解释:

User Question

我查看了有关 MySQL 的文档,但我正在寻找更简单的术语,因为网站上的内容没有意义。我不明白是什么:

LOAD DATA INFILE 'file.csv'
INTO TABLE t1
(column1, @dummy, column2, @dummy, column3, ...)
FIELDS TERMINATED BY ',' ENCLOSED BY '"' ESCAPED BY '"'
LINES TERMINATED BY '\r\n';`

@dummy 的用途是什么?

如果我有列 a、b、c 和那些数据,我将如何插入它来限制那些?

谢谢

【问题讨论】:

    标签: mysql


    【解决方案1】:

    如果您的 CSV 中的数据包含 5 列,但您只想使用其中的 3 列 - 您使用 @dummy 指定该列实际上不会写入表中。

    【讨论】:

    • 所以通过指定column1,@dummy 它不会写入它?
    • 它实际上做了什么,它将第二列(在 column1 之后)分配给一个名为 dummy 的变量——而不是将它分配给一个名为 dummy 的列(它可能不存在于您的表中)。并且通过将它分配给一个变量,你不会使用你有效地跳过它。
    • 不,假设您的文件中的数据有 5 列:A、B、C、D、E - 您正在将数据加载到具有 3 列的表中:column1、column2、column3 但您希望将文件中的 A 列写入 column1 中的表,将 C 列写入 column2,并将 E 列写入第 3 列 - 所以您不会使用 B 和 D。在这种情况下,您指定 INTO TABLE t1( column1, @dummy, column2 , @dummy, column3) - 所以你将 B 列分配给一个虚拟变量,而 D 列则相同,从而跳过它们。
    猜你喜欢
    • 2021-11-19
    • 2015-03-18
    • 2016-01-09
    • 1970-01-01
    • 2011-10-13
    • 2015-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多