web-dev-qa-db-fra.com

Un nombre peut-il être utilisé pour nommer une colonne de table MySQL?

J'ai une table qui a des noms de colonnes comme 25, 50, 100, etc.

Lorsque j'essaie de mettre à jour la table, j'obtiens une erreur, peu importe comment je le fais

UPDATE table SET '25'='100' WHERE id = '1'

J'ai essayé de citer et de reculer dans tous les sens mais sans succès.

L'erreur va toujours dans le sens de:

Vous avez une erreur dans votre syntaxe SQL; consultez le manuel qui correspond à votre version de serveur MySQL pour la bonne syntaxe à utiliser près de '' 25 '= 100 WHERE id = 1' à la ligne 1

Si je change le nom de la colonne en twentyfive - je n'ai pas de problème, mais ce n'est pas ce que je veux. Est-il possible d'utiliser un nombre comme nom de colonne?

20
Daniel Hunter

De les docs :

Les identifiants peuvent commencer par un chiffre mais à moins qu'ils ne soient cités, ils ne peuvent pas être uniquement constitués de chiffres.

Ce qui signifie que vous devez le citer avec des graduations comme "25":

UPDATE table SET `25`='100' WHERE id='1'
43
Matthew

Comme d'autres l'ont dit, vous pouvez cocher en arrière les noms des tableaux, colonnes, etc. Assurez-vous simplement de ne pas cocher en arrière votre valeurs sinon il les interprétera comme des noms de colonnes. Donc, dans votre exemple, seul le 25 doit être coché à nouveau:

UPDATE table SET `25`=100 WHERE id=1
4
Bryan Moodie

Vérifiez ici: http://dev.mysql.com/doc/refman/5.0/en/identifiers.html

Les identifiants peuvent commencer par un chiffre mais à moins qu'ils ne soient cités, ils ne peuvent pas être uniquement constitués de chiffres.

Alors oui, vous pouvez le faire - vous devez utiliser des réticules autour du nom.

1
gview

Si vous avez besoin qu'il soit basé sur un nombre pour une raison quelconque, vous pouvez ajouter un préfixe simple au numéro dans tous les cas (par exemple, "col25", "col87", etc.).

0
Jon Newmuis