如何在 MySQL 中选择带空格的列名

我正在从事一个项目,其中另一个开发人员创建了一个列名为 'Business Name'的表。那是两个词之间的空格。如果我运行一个带有“ Business Name”的 SELECT语句,它表示没有名为“ Business”的列。

我怎样才能解决这个问题?

354542 次浏览

Generally the first step is to not do that in the first place, but if this is already done, then you need to resort to properly quoting your column names:

SELECT `Business Name` FROM annoying_table

通常这些类型的东西是由那些使用过类似 MicrosoftAccess 的东西并且总是使用 GUI 来完成他们的工作的人创建的。

我认为双引号也很有用:

SELECT "Business Name","Other Name" FROM your_Table

但我只在 SQLServer 上测试,而不是 mySQL,以防有人使用 MSSQLServer。

对于每个列来说,正确的编码方法是重命名插入下划线的列,这样就没有空格了。这将确保编码时零错误。在打印公共显示的列名时,您可以搜索并替换以用空格替换下划线。

如果双引号不起作用,请尝试将字符串包含在方括号中。

例如:

SELECT "Business Name","Other Name" FROM your_Table

可以改为

SELECT [Business Name],[Other Name] FROM your_Table

你需要使用反勾而不是单引号:

单引号-'Business Name'-错

返回-`Business Name`-正确

我来的时候遇到了一个微软访问问题。

Backticks are good for MySQL, but they create weird errors, like "Invalid Query Name: Query1" in MS Access, for MS Access only, use square brackets:

应该是这样的

SELECT Customer.[Customer ID], Customer.[Full Name] ...