一个数字可以用来命名一个MySQL表列吗​​?

我有一个有25,50,100等列名的表。

当试图更新表格时,无论如何我都会收到一个错误

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

我尝试过引用和反驳,但没有成功。

错误总是沿着以下的路线:

你的SQL语法有错误; 检查与您的MySQL服务器版本相对应的手册,以便在第1行'25'= 100 WHERE id = 1'附近使用正确的语法

如果我将列名更改为twentyfive – 我没有问题,但那不是我想要的。 是否可以使用数字作为列名?

从文档 :

标识符可以以数字开头,但除非引用可能不仅仅是数字。

这意味着你必须用`25`这样的反标来引用它:

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

如果您因为某种原因需要基于数字,则可以在所有情况下为数字附加一些简单的前缀(例如“col25”,“col87”等)。

正如其他人所说的那样,您可以对表格,列等名称进行备份。只要确保您没有回复您的值,否则就会将它们解释为列名。 所以在你的例子中只有25个需要重新打勾:

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

在这里检查: http : //dev.mysql.com/doc/refman/5.0/en/identifiers.html

标识符可以以数字开头,但除非引用可能不仅仅是数字。

所以是的,你可以做到这一点 – 你需要使用名字附近的backtics。

MySQL中的名称可以以数字开头,但不能是完全数字 – 它们不能与整数混淆。 所以不行。

如果你用一个数字开始你的标识符,你应该很确定你坚持使用MySQL,因为许多(大多数)其他数据库引擎在列名前面需要一个字母字符。

(如注释中所述,如果您始终使用反引号字符,则允许使用完整整数列名 – 如果您尝试反引号并仍然出现语法错误,请使用您使用的精确反引号语法)。

另外,当然,如果你select整型命名的列,你会产生一些难以阅读的SQL!