首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么MySQL命令行客户端拒绝我的语句,而工作台可以接受它?

问为什么MySQL命令行客户端拒绝我的语句,而工作台可以接受它?
EN

Stack Overflow用户
提问于 2017-01-13 23:09:18
回答 1查看 34关注 0票数 0

我有一个需要日志输出的SQL查询列表,所以我使用MySQL命令行客户端。除了下面的查询之外,所有这些查询都会产生正确的输出,该查询会抛出语法错误。查询的目的是获取订购产品总数量最多的客户的CustID。我使用子查询,但这可能是错误的:

代码语言:javascript
复制
SELECT CUSTNUM FROM(
  SELECT CUSTNUM, MAX(TOTALQTY) FROM(
    SELECT CUSTNUM, SUM(QTY) AS TOTALQTY
    FROM ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC
    ) ORDERS
  ) ORDERS;

...I收到此错误:

代码语言:javascript
复制
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual
that corresponds to your MySQL server version for the right syntax to use 
near 'ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC) ORDERS    ) ORDERS' at 
line 1

我不明白为什么这个查询在Workbench中工作得很好,但在命令行中却不行。

EN

回答 1

Stack Overflow用户

发布于 2017-01-13 23:46:24

好吧,当我从Workbench复制和粘贴语句时,它似乎丢失了过程中关键字之间的一些空格。粘贴的查询在命令行中如下所示:

代码语言:javascript
复制
SELECT CUSTNUM FROM(SELECT CUSTNUM, MAX(TOTALQTY) FROM(SELECT CUSTNUM, 
SUM(QTY) AS TOTALQTYFROM ORDERS GROUP BY CUSTNUM ORDER BY TOTALQTY DESC) 
ORDERS    ) ORDERS    ;

注意"TOTALQTYFROM",错误。

学到的教训……不要盲目地复制和粘贴,或者至少检查我粘贴的内容!

我离开这篇文章,以防其他人也有类似的问题。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41637653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档