【问题标题】:Unrecognized keyword in phpmyadminphpmyadmin 中无法识别的关键字
【发布时间】:2016-12-10 07:31:03
【问题描述】:

我正在使用 phpmyadmin 版本 5.6.33。通过引用准备查询以下载表

http://www.mysqltutorial.org/mysql-export-table-to-csv/

(SELECT 'Order Number','Order Date','Status')
UNION 
(SELECT orderNumber,orderDate, status
FROM orders
INTO OUTFILE 'C:/tmp/orders.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n');

我收到错误

Unrecognized Keyword FIELDS
Unrecognized Keyword ENCLOSED and so on...

引用某些链接

phpMyAdmin SQL Error Unrecognized keyword near FIELDS

Unrecognized key word Near Fields, Terminated When Using INTO OUTFILE in mysql query

但这对我不起作用。

【问题讨论】:

  • (SELECT 'Order Number','Order Date','Status') UNION (SELECT orderNumber,orderDate, status) FROM orders INTO OUTFILE 'C:/tmp/orders.csv' FIELDS TERMINATED BY ';'由 '"' 包围的行由 '\r\n' 终止;
  • @Anant 仍然显示相同的错误
  • 5.6.33 可能是您的 MySQL 版本,但不是有效的 phpMyAdmin 版本;你能看看主页,让我们知道你有什么 phpMyAdmin 版本吗?
  • 我犯了一个错误,我在 sql 查询执行部分执行此查询,而不是创建存储过程。一旦我使用相同的代码创建存储过程,它就可以正常工作..
  • 感谢大家的帮助。

标签: mysql phpmyadmin


【解决方案1】:

您需要将联合作为子查询放入 select into outfile 的 from 子句中,因为您要导出整个 redultset:

SELECT * 
INTO OUTFILE 'C:/tmp/orders.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
FROM
    ((SELECT 'Order Number','Order Date','Status')
      UNION 
     (SELECT orderNumber,orderDate, status
      FROM orders));

【讨论】:

  • 我尝试了您的解决方案仍然遇到相同的错误。而且没有联合只是尝试简单,没有包含字段,它可以正确导出。
  • 糟糕,将 from 子句放在了错误的位置。更新了答案。
【解决方案2】:

只是扩展Shadows的答案,我发现如果...

  1. 您为您的子查询添加别名 - 因为它抱怨了这一点。

#1248 - 每个派生表都必须有自己的别名

  1. 文件的位置需要与您的 my.ini 文件中的定义一致,如下所述

为避免警告消息secure_file_priv="c:/wamp64/tmp"

注意:您需要在查询中更改此项以适合您使用的内容。

否则它会报告:

#1290 - MySQL 服务器使用 --secure-file-priv 选项运行,因此无法执行此语句

SELECT * 
INTO OUTFILE 'C:/wamp64/tmp/orders.csv'
FIELDS ENCLOSED BY '"' TERMINATED BY ';' ESCAPED BY '"'
LINES TERMINATED BY '\r\n'
FROM
    ((SELECT 'Order Number','Order Date','Status')
      UNION 
     (SELECT orderNumber,orderDate, status
      FROM orders)) as orders_alias;

然后生成了 csv 文件。所以看看这是否有帮助。

【讨论】:

  • (SELECT 'Order Number','Order Date','Status') UNION (SELECT orderNumber,orderDate, status FROM orders INTO OUTFILE 'C:/tmp/orders.csv');此查询导出表。但是,如果我使用由 '"' 终止的字段;' ESCAPED BY '"' LINES TERMINATED BY '\r\n' 它显示错误为无法识别的关键字。
  • 最后一个错误状态是什么,它显示“mysql said”消息?
  • 您是否看到 #1248 或 #1290 或其他一些错误和消息?
  • 它没有显示任何错误代码。它显示错误消息为无法识别的关键字(靠近字段),无法识别的关键字(靠近封闭).. 像这样,如果我使用这些行
猜你喜欢
  • 2017-04-06
  • 2020-10-09
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-21
相关资源
最近更新 更多