我正在开发一个项目,其中另一个开发人员创建了一个列名如'Business Name'
. 那是两个词之间的空格。如果我运行一个SELECT
带有“企业名称”的语句,它会说没有名称为“企业”的列。
我怎么解决这个问题?
通常第一步是首先不要这样做,但如果已经这样做了,那么你需要正确引用你的列名:
SELECT `Business Name` FROM annoying_table
通常这类东西是由使用过 Microsoft Access 之类的东西的人创建的,并且总是使用 GUI 来做他们的事情。
如果双引号不起作用,请尝试将字符串包含在方括号内。
例如:
SELECT "Business Name","Other Name" FROM your_Table
可以更改为
SELECT [Business Name],[Other Name] FROM your_Table
您需要使用反引号而不是单引号:
单引号 - 'Business Name'
- 错误
反引号 - `Business Name`
- 正确
每个人都有自己的但正确的编码方法是重命名插入下划线的列,这样就没有间隙。这将确保编码时零错误。打印列名以供公共显示时,您可以搜索并替换以将下划线替换为空格。
我遇到了 MS Access 问题。
反引号对 MySQL 有好处,但它们会产生奇怪的错误,例如 MS Access 中的“Invalid Query Name: Query1”,仅对于 MS Access,使用方括号:
它应该看起来像这样
SELECT Customer.[Customer ID], Customer.[Full Name] ...
我认为双引号也可以:
SELECT "Business Name","Other Name" FROM your_Table
但我只在 SQL Server 而不是 mySQL 上测试,以防有人使用 MS SQL Server。