171 votes

Colonne inconnue dans l'erreur 'field list' sur la requête de mise à jour MySQL

Je reçois toujours l'erreur MySQL # 1054 en essayant d'exécuter 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 et d'autres modifications, mais je reçois toujours le même message:

 Unknown column 'y' in 'field list'
 

Merci pour toute aide.

226voto

tuergeist Points 3718

Essayez d’utiliser des guillemets différents pour "y", car le caractère de guillemet identifiant est le backtick ("` "). Sinon, MySQL "pense" que vous pointez sur une colonne nommée "y".

Voir aussi la documentation MySQL 5

63voto

ShoushouLeb Points 121

Placez toute chaîne à transmettre au serveur mysql entre guillemets simples; par exemple:

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

Notez que bien que la requête soit placée entre guillemets, vous devez entourer toute chaîne entre guillemets simples.

18voto

flokra Points 5804

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

Puisque vous voulez seulement mettre à jour la table master_user_profile je vous recommande une requête imbriquée:

 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);
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X