Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/58.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
可以用数字来命名MySQL表列吗?_Mysql_Ddl - Fatal编程技术网

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

可以用数字来命名MySQL表列吗?,mysql,ddl,Mysql,Ddl,我有一个表,它有25、50、100等列名 尝试更新表时,无论我如何更新,都会出现错误 UPDATE table SET '25'='100' WHERE id = '1' 我尝试过引用和回溯每一种方式,但没有成功 错误总是沿着以下路线出现: 您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“25”=100,其中id=1”附近要使用的正确语法 如果我将列名更改为twenty5,我没有问题,但这不是我想要的。是否可以使用数字作为列名?如果出于某种原因需要以数字为基础,您可以

我有一个表,它有25、50、100等列名

尝试更新表时,无论我如何更新,都会出现错误

UPDATE table SET '25'='100' WHERE id = '1'
我尝试过引用和回溯每一种方式,但没有成功

错误总是沿着以下路线出现:

您的SQL语法有错误;检查与MySQL服务器版本对应的手册,以了解第1行“25”=100,其中id=1”附近要使用的正确语法


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

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

来自:

标识符可以以数字开头,但除非引用,否则不能仅由数字组成

这意味着你必须用后面的记号来引用它,比如'25':

UPDATE table SET `25`='100' WHERE id='1'
MySQL中的名称可以以数字开头,但不能完全是数字——它们不能与整数混淆。所以,不

如果您的标识符以一个数字开头,您应该非常确定您使用的是MySQL,因为许多(大多数?)其他数据库引擎要求在列名的前面有一个字母字符

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

当然,如果您选择整数命名列,您将产生一些难以读取的SQL

检查这里:

标识符可以以数字开头,但除非引用,否则可能不包括 完全由数字组成


是的,你可以这样做——你需要在名称周围使用倒勾。

正如其他人所说,你可以倒勾表、列等的名称。只要确保你没有倒勾你的值,否则它会将它们解释为列名。因此,在您的示例中,只需重新勾选25:

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

你确定吗?我刚刚创建了一个名为
1
的表,其中包含一个名为
2
的列,当然,我必须大量地应用反勾号。这在MySQL中是不正确的事实上,你们都是对的(MySQL文档比informit.com的要好)。我已经给出了答案,但我仍然想说,我认为使用数字字段名有点不合常规,我倾向于在字段前面加前缀。请参阅本文,谢谢。阅读了一些文章后,我同意,在专栏前面加上前缀是一种更好的做法。只要你正确地引用,数字就可以了。