4 votes

Impossible de mettre à jour une colonne de type int dans mysql

Qu'est-ce qui ne va pas avec cette requête mysql?

UPDATE answers SET 23 = 2 WHERE user_id ='1';

Je suis en train de tenter de mettre à jour un champ int(2), mais cela ne fonctionne pas.

23 est le nom de la colonne, au fait

6voto

juergen d Points 85039

Si 23 est votre nom de colonne, échappez-le en utilisant `

UPDATE answers 
SET `23` = 2 
WHERE user_id ='1';

3voto

Sirko Points 32515

En supposant que la colonne que vous essayez de mettre à jour s'appelle value, vous devriez utiliser du code comme ci-dessous :

UPDATE answers SET value = 2 WHERE user_id ='1' and value='23';

ÉDITER

En ce qui concerne ce commentaire :

oui, 23 est le nom du champ - Mladen

UPDATE answers SET `23`= 2 WHERE user_id ='1';

Cela devrait être la requête correcte. Cependant, vous ne devriez pas utiliser juste des nombres comme noms de colonne, pour la raison que vous venez de rencontrer : MySQL pourrait les confondre avec l'identifiant de nombre réel et ainsi vos requêtes pourraient échouer.

1voto

NET Experts Points 1598
MAJ réponses SET [23] = 2 OÙ user_id ='1';
ou
    MAJ réponses SET `23` = 2 OÙ user_id ='1';

0voto

scibuff Points 5796

Il doit être

MAJ réponses SET  = 2 OÙ user_id ='1';

0voto

Mosty Mostacho Points 22803

Si 23 est le nom de votre champ, alors vous devez l'échapper de cette manière :

UPDATE answers SET `23` = 2
WHERE user_id ='1';

C'est parce qu'il ne l'interprète pas comme un champ mais plutôt comme un nombre.

Exemple

J'espère que cela vous aide.

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