Colonne inconnue dans l’erreur “liste de champs” sur la requête de mise à jour MySQL

Je continue à obtenir l’erreur # 1054 de MySQL, en essayant d’effectuer cette requête de mise à jour:

UPDATE MASTER_USER_PROFILE, TRAN_USER_BRANCH SET MASTER_USER_PROFILE.fellow=`y` WHERE MASTER_USER_PROFILE.USER_ID = TRAN_USER_BRANCH.USER_ID AND TRAN_USER_BRANCH.BRANCH_ID = 17 

C’est probablement une erreur de syntaxe, mais j’ai essayé d’utiliser une jointure interne à la place et d’autres modifications, mais je continue à recevoir le même message:

 Unknown column 'y' in 'field list' 

Essayez d’utiliser des guillemets différents pour “y” car le guillemet identificateur est le backtick (“”). Sinon, MySQL “pense” que vous pointez sur une colonne nommée “y”.

Voir aussi la documentation MySQL 5

Joignez toute chaîne à transmettre au serveur mysql à l’intérieur de guillemets simples; par exemple:

 $name = "my name" $query = " INSERT INTO mytable VALUES ( 1 , '$name') " 

Notez que même si la requête est entre guillemets, vous devez inclure une chaîne entre guillemets simples.

Vous pouvez vérifier votre choix de guillemets (utilisez des guillemets simples / doubles pour les valeurs, les chaînes, etc. et les guillemets pour les noms de colonne).

Étant donné que vous souhaitez uniquement mettre à jour la table master_user_profile je vous recommande une requête nestede:

 UPDATE master_user_profile SET master_user_profile.fellow = 'y' WHERE master_user_profile.user_id IN ( SELECT tran_user_branch.user_id FROM tran_user_branch WHERE tran_user_branch.branch_id = 17); 

Dans mon cas, cela était dû à un espace de fin inédit à la fin du nom de la colonne. Vérifiez simplement si vous utilisez vraiment “y” ou “y” à la place.

Une requête comme celle-ci provoquera également l’erreur

 select table1.id from table2 

Où la table est spécifiée dans la colonne select et non incluse dans la clause from.

Tout en travaillant sur une version de l’application .Net avec le code EF en premier, j’ai reçu ce message d’erreur lorsque j’essayais d’appliquer ma migration où j’avais un Sql("UPDATE tableName SET columnName = value"); déclaration.

Il s’avère que j’ai mal orthographié le columnName.

J’ai aussi la même erreur, le problème dans mon cas est que j’ai inclus le nom de la colonne dans la clause GROUP BY et que cela a causé cette erreur. Donc enlevé la colonne de la clause GROUP BY et ça a fonctionné !!!