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é.
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;
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
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;