对于以下SQL查询:
SELECT COUNT (distinct first_name) from actor;
我收到以下错误消息:
"SELECT" is not valid at this position for this server version, expecting: '(', WITH
我是SQL方面的新手。如何解决此错误?
我在另一台电脑上用完全相同的模式放了完全相同的行,效果很好。
您是否尝试运行删除"COUNT"和括号之间的空格的查询?我在MYSQL 5.7上运行了一个与您类似的查询,它给了我一个错误,但没有这个空间,查询就会运行。
让我们试试这个:
SELECT COUNT(DISTINCT first_name) FROM actor;
我知道这不是您所说的问题,但这与我收到的错误消息相同。这个消息是如此的通用,以至于它可以是任何东西。。。
所以,从一个新手到另一个:
对我来说,当我将一个查询嵌套在另一个查询中时发生了错误。我有一个;在第一个查询结束时,忘记将其取出。这就造成了错误。一旦我删除了;在内部查询中,并在新查询的末尾添加了一个查询,从而解决了错误。
错误:
Select
From (....
Select
From
Where
Group by
Order ; <== offending ;
) as ...
Where
Group by
Order
无错误:
Select
From (....
Select
From
Where
Group by
Order
) as ...
Where
Group by
Order ; <== correct placement
使用"db_name"解决了我的错误尽管我已经执行了use"db_name"命令,但使用表;
select * FROM db_name.table_name;
我希望每当您开始编写select时,都会看到这个错误。我也犯了同样的错误,阅读了所有的评论,尝试了不同的方法,但没有任何结果,但最终还是解决了错误。
您出现此错误是因为您可能没有关闭以前的代码。例如,如果您以前已经编写过代码,则最终使用order by(或(limit命令,但没有使用分号(;(将其关闭。
如果您试图在前一个命令之后编写一个新命令select,而不使用分号将其关闭,则可能会出现此错误。