web-dev-qa-db-fra.com

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 à la place et d'autres modifications, mais je reçois toujours le même message:

Unknown column 'y' in 'field list' 
96
me_here

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

Voir aussi Documentation MySQL 5

127
tuergeist

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 entourez toute chaîne entre guillemets simples.

39
ShoushouLeb

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

Dans mon cas, cela était dû à un espace de fin invisible à la fin du nom de la colonne. Il suffit de vérifier si vous utilisez réellement "y" ou "y" à la place.

2
Aminah Nuraini

J'ai eu cette erreur en utilisant GroupBy via LINQ sur une base de données MySQL. Le problème était que la propriété d'objet anonyme utilisée par GroupBy ne correspond pas au nom de colonne de la base de données. Fixé en renommant le nom de la propriété anonyme pour correspondre au nom de la colonne.

.Select(f => new 
{
   ThisPropertyNameNeedsToMatchYourColumnName = f.SomeName
})
.GroupBy(t => t.ThisPropertyNameNeedsToMatchYourColumnName);
0
Eternal21

Si c'est hiberner et JPA. vérifiez le nom de la table et les colonnes auxquelles vous faites référence peuvent être incompatibles

0
Poorna

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 n'est pas incluse dans la clause from.

0
hogarth45

Alors que je travaillais tout d'abord sur une version de l'application .Net avec du code EF, j'ai reçu ce message d'erreur lorsque j'essayais d'appliquer ma migration lorsque j'avais une instruction Sql("UPDATE tableName SET columnName = value");.

Il s'avère que j'ai mal orthographié le nom de la colonne.

0
Masterchief

Moi aussi j'ai eu 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 supprimé la colonne de la clause GROUP BY et ça a marché !!!

0
mannedear