我有一个包含25,50,100等列名的表。
当尝试更新表格时,无论我怎么做,我都会收到错误
UPDATE table SET '25'='100' WHERE id = '1'
我尝试过引用和回填所有方法但没有成功。
错误始终如下:
您的SQL语法有错误;查看与您的MySQL服务器版本对应的手册,以便在第1行''25'= 100 WHERE id = 1'附近使用正确的语法
如果我将列名更改为twentyfive
- 我没有问题,但这不是我想要的。是否可以使用数字作为列名?
答案 0 :(得分:42)
来自the docs:
标识符可以以数字开头,但除非引用可能不仅仅由数字组成。
这意味着你必须用“25”之类的后标记引用它:
UPDATE table SET `25`='100' WHERE id='1'
答案 1 :(得分:4)
正如其他人所说,你可以反复勾选表格,列等的名称。只要确保你没有回复你的值,否则它将它们解释为列名。因此,在您的示例中,只需要勾选25个:
UPDATE table SET `25`=100 WHERE id=1
答案 2 :(得分:1)
如果由于某种原因需要它基于数字,你可以在所有情况下为数字添加一些简单的前缀(例如“col25”,“col87”等)。
答案 3 :(得分:1)
点击此处:http://dev.mysql.com/doc/refman/5.0/en/identifiers.html
标识符可以以数字开头,但除非引用可能不包含 只是数字。
所以是的,你可以这样做 - 你需要在名字周围使用背叛。
答案 4 :(得分:-1)
MySQL中的名称可以以数字开始,但不能完全数字 - 它们不能与整数混淆。所以,没有。
如果你用数字开始你的标识符,你应该非常确定你是否坚持使用MySQL,因为许多(大多数?)其他数据库引擎需要在列名前面加上字母字符。
(如评论中所述,如果您始终使用反引号字符,则允许使用完全整数列名 - 如果您尝试使用反引号并仍然出现语法错误,请发布您使用的精确反引号语法)。
当然,如果你选择整数命名列,你会产生一些难以阅读的SQL!