web-dev-qa-db-fra.com

Les rapports MySQL Workbench "n'est pas valide à cette position pour cette version du serveur" erreur

Pour la requête SQL suivante:

SELECT COUNT (distinct first_name) from actor;

Je reçois le message d'erreur suivant:

"SELECT" is not valid at this position for this server version, expecting: '(', WITH

Je suis un débutant total à SQL. Comment résoudre cette erreur?

J'ai mis exactement la même ligne sur un autre PC avec exactement le même schéma et cela a bien fonctionné.

8
Theo Bouras

Avez-vous essayé d'exécuter la requête en supprimant l'espace entre "COUNT" et le crochet? Je lance une requête similaire à la votre sur MYSQL 5.7 et cela me donne une erreur, mais sans cet espace la requête est exécutée.

Essayons ça:

SELECT COUNT(DISTINCT first_name) FROM actor;
10
Gufus

Je sais que ce n'est pas le problème exact que vous avez déclaré, mais c'était le même message d'erreur que je recevais. Le message est tellement générique que ça pourrait être n'importe quoi ...

Donc, d'un débutant à l'autre:

Pour moi, l'erreur s'est produite lorsque j'ai imbriqué une requête dans une autre. J'ai eu un ; à la fin de la première requête et j'ai oublié de la supprimer. Cela a jeté l'erreur. Une fois que j'ai supprimé le; dans la requête interne et ajouté un à la fin de la nouvelle requête, l'erreur résolue.

Erreur:

Select
From (....
    Select
    From
    Where
    Group by
    Order ;     <== offending ;
) as ...
Where
Group by
Order

Pas d'erreur:

Select
From (....
    Select
    From
    Where
    Group by
    Order
) as ...
Where
Group by
Order ;   <== correct placement
2
Prashant Marathay

Une erreur de mine résolue à l'aide de 'nom_base'. avec table même si j'ai déjà exécuté, utilisez la commande 'db_name';

select * FROM db_name.table_name;
0
S'chn T'gai Spock