109

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

我怎么解决这个问题?

4

6 回答 6

188

通常第一步是首先不要这样做,但如果已经这样做了,那么你需要正确引用你的列名:

SELECT `Business Name` FROM annoying_table

通常这类东西是由使用过 Microsoft Access 之类的东西的人创建的,并且总是使用 GUI 来做他们的事情。

于 2013-01-07T06:13:29.703 回答
24

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

例如:

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

可以更改为

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

于 2015-09-29T14:27:54.600 回答
22

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

单引号 - 'Business Name'- 错误

反引号 - `Business Name`- 正确

于 2017-12-07T04:40:17.703 回答
3

每个人都有自己的但正确的编码方法是重命名插入下划线的列,这样就没有间隙。这将确保编码时零错误。打印列名以供公共显示时,您可以搜索并替换以将下划线替换为空格。

于 2015-08-04T15:09:29.783 回答
2

我遇到了 MS Access 问题。

反引号对 MySQL 有好处,但它们会产生奇怪的错误,例如 MS Access 中的“Invalid Query Name: Query1”,仅对于 MS Access,使用方括号:

它应该看起来像这样

SELECT Customer.[Customer ID], Customer.[Full Name] ...
于 2020-03-07T00:07:52.747 回答
-5

我认为双引号也可以:

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

但我只在 SQL Server 而不是 mySQL 上测试,以防有人使用 MS SQL Server。

于 2014-09-01T00:00:17.277 回答