【问题标题】:Putting a file content into an sql query?将文件内容放入 sql 查询中?
【发布时间】:2015-10-14 15:22:55
【问题描述】:

嘿,我有一个大型数据库,客户在其中请求特定于他们的数据。他们通常以文本或 csv 文件的形式向我发送请求。我想知道是否有办法让 sql 读取该文件并获取内容并将它们放入 sql 查询中。这样我就不必打开该文件并将所有内容复制并粘贴到 sql 查询中。

【问题讨论】:

  • 不清楚,你想要什么。客户发送什么以及他们想要什么?你会给他们什么?他们以 text/csv 格式发送什么?
  • 客户发送给我的是我数据库中产品的识别号。我将这些数字放入查询中并得到结果。我只想知道sql有没有办法做到这一点,所以我不必复制和粘贴。

标签: mysql sql


【解决方案1】:

史蒂夫已经回答了。

让我只补充几句话。

您不能直接使用 csv、text、excel 或任何其他格式 查询 DML/DDL.. 只能将文件直接用于导出/导入。

【讨论】:

    【解决方案2】:

    没有。 MySQL 不是为此而设计的。

    您需要一个可以解释文件并生成所需查询的中间脚本。

    【讨论】:

      【解决方案3】:

      是的,有一种方法可以做到这一点:您可以将 csv 文件导入数据库,然后将其与您想要的任何查询结合起来。

      您可以使用 SQL 查询加载 csv 文件,例如:

      LOAD DATA INFILE "/tmp/test.csv"
      INTO TABLE test
      COLUMNS TERMINATED BY ','
      OPTIONALLY ENCLOSED BY '"'
      ESCAPED BY '"'
      LINES TERMINATED BY '\n'
      IGNORE 1 LINES;
      

      您可以使用其他方式导入数据,见:How to import CSV file to MySQL table.

      我在带有 MySQL 5.6 的 Ubuntu 14.04 中尝试了这个 SQL 解决方案。为此,您必须将test.csv 文件放在/tmp 目录中并执行chmod 755 test.csv 以使其正常工作。否则 MySQL 会给出“Permission denied”错误。有关此问题的更多信息,请访问:LOAD DATA INFILE Error Code : 13

      【讨论】:

        猜你喜欢
        • 2016-06-06
        • 2021-03-23
        • 2017-03-01
        • 2017-03-22
        • 1970-01-01
        • 1970-01-01
        • 2010-09-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多