对于以下SQL查询:
SELECT COUNT (distinct first_name) from actor;
我收到以下错误消息:
"SELECT" is not valid at this position for this server version, expecting: '(', WITH
我是SQL的新手。如何解决此错误?
我在具有相同模式的另一台PC上放置了相同的行,并且工作正常。
答案 0 :(得分:8)
您是否尝试运行查询以删除“ COUNT”和方括号之间的空格?我在MYSQL 5.7上运行了一个与您的查询类似的查询,但它给了我一个错误,但是没有足够的空间运行查询。
让我们尝试一下:
SELECT COUNT(DISTINCT first_name) FROM actor;
答案 1 :(得分:3)
我知道这不是您所说的确切问题,但这与我收到的错误消息相同。该消息是如此普通,以至于可以是任何...
因此,从一个新手到另一个新手:
对我来说,当我将一个查询嵌套在另一个查询中时发生了错误。我曾有一个 ;在第一个查询的末尾,却忘记将其取出。那引发了错误。一旦我删除了;在内部查询中,并在新查询的末尾添加了一个,即可解决错误。
错误:
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
答案 2 :(得分:0)
使用“ db_name”解决了我的错误。表,尽管我已经执行过使用'db_name'命令;
select * FROM db_name.table_name;
答案 3 :(得分:0)
我希望每当您开始编写 select 时,您都会看到此错误。我也遇到了同样的错误,并以不同的方式阅读了所有评论,但对我来说没有任何效果,但最终解决了错误。
您收到此错误是因为您可能没有关闭之前的代码。例如,如果您之前已经编写过代码,您最终会使用 order by(或)limit 命令,但没有使用分号 (;) 关闭它。
如果您尝试在上一个命令之后编写一个新命令 select 而不用分号将其关闭,则可能会出现此错误。